@vpriem/kafka-broker
Version:
Easily compose and manage your kafka resources in one place
33 lines • 1.24 kB
TypeScript
/// <reference types="node" />
import EventEmitter from 'events';
import { Producer, ProducerBatch, ProducerRecord } from 'kafkajs';
import { BatchConfig } from './types';
export declare const isProducerBatch: (record: ProducerRecord | ProducerBatch) => record is ProducerBatch;
export interface BatchProducerInterface {
on(event: 'error', listener: (error: Error) => void): this;
on(event: 'batch.start', listener: (event: ProducerBatch) => void): this;
}
export declare class BatchProducer extends EventEmitter implements BatchProducerInterface {
private readonly producer;
private topicMessages;
private timer;
private hrTime;
private isSending;
private readonly batchSize;
private batchRequest;
private readonly lingerMs;
private readonly config?;
constructor(producer: Producer, batchConfig: BatchConfig);
get length(): number;
private elapsedMs;
private sendIfNecessary;
private startAutoSendIfNecessary;
private stopAutoSendIfNecessary;
push(record: ProducerRecord | ProducerBatch): void;
private createBatch;
private sendBatch;
private sendOneBatch;
private sendAllBatch;
flush(): Promise<void>;
}
//# sourceMappingURL=BatchProducer.d.ts.map