UNPKG

@cumulus/ingest

Version:
43 lines 1.56 kB
import { SQSMessage } from '@cumulus/aws-client/SQS'; export declare type MessageConsumerFunction = (queueUrl: string, message: SQSMessage) => Promise<void>; /** * Configuration parameters for the rate-limited consumer. */ export interface ConsumerConstructorParams { /** * URLs of the SQS queues to poll. */ queueUrls: string[]; /** * Function that returns the remaining time in milliseconds before Lambda timeout. */ timeRemainingFunc: () => number; /** * The visibility timeout in milliseconds used when fetching messages from the SQS queues. */ visibilityTimeout: number; /** * Whether to delete messages after successful processing. Defaults to true. */ deleteProcessedMessage?: boolean; /** * Maximum number of messages to process per second. */ rateLimitPerSecond: number; } export declare class ConsumerRateLimited { private readonly deleteProcessedMessage; private readonly queueUrls; private readonly timeRemainingFunc; private readonly visibilityTimeout; private readonly rateLimitPerSecond; private readonly messageLimitPerFetch; private readonly waitTime; constructor({ queueUrls, timeRemainingFunc, visibilityTimeout, rateLimitPerSecond, deleteProcessedMessage, }: ConsumerConstructorParams); private processMessage; private processMessages; private fetchMessages; private fetchMessagesFromAllQueues; consume(fn: MessageConsumerFunction): Promise<number>; } //# sourceMappingURL=consumerRateLimited.d.ts.map