@cn-shell/aws-utils
Version:
A Cloud Native extension for AWS
45 lines (44 loc) • 1.24 kB
TypeScript
import { Base, Opts } from "./aws-base";
import AWS_SQS from "aws-sdk/clients/sqs";
export interface SenderOpts extends Opts {
queue: string;
fifo?: boolean;
}
export interface ReceiverOpts extends Opts {
queue: string;
pollInterval: number;
backoffInterval: number;
msgProcesser: (msgs: AWS_SQS.Message[]) => Promise<number[]>;
}
export declare class Sender extends Base {
private readonly _queue;
private _sqs;
private _fifo;
constructor(name: string, opts: SenderOpts);
start(): Promise<boolean>;
injectMessage(msg: string): Promise<boolean>;
sendMessage(
msg: string,
attribs?: AWS_SQS.MessageBodyAttributeMap,
msgGroupID?: string,
): Promise<boolean>;
stop(): Promise<void>;
healthCheck(): Promise<boolean>;
}
export declare class Receiver extends Base {
private readonly _queue;
private _sqs;
private _pollInterval;
private _backoffInterval;
private _nowReceiving;
private _stopNow;
private _processMessages;
constructor(name: string, opts: ReceiverOpts);
start(): Promise<boolean>;
private startReceiving;
injectMessages(msgs: string): Promise<number>;
private receiveMessage;
stop(): Promise<void>;
private stopReceiving;
healthCheck(): Promise<boolean>;
}