@ydbjs/topic
Version:
YDB Topics client for publish-subscribe messaging. Provides at-least-once delivery, exactly-once publishing, FIFO guarantees, and scalable message processing for unstructured data.
20 lines • 733 B
JavaScript
import { _batch_messages } from "./_batch_messages.js";
import { _emit_write_request } from "./_write_request.js";
export const _flush = function flush(ctx) {
if (!ctx.buffer.length) {
return; // Nothing to flush
}
let messagesToSend = [];
while (ctx.inflight.length < ctx.throughputSettings.maxInflightCount) {
let message = ctx.buffer.shift();
if (!message) {
break; // No more messages to send
}
ctx.inflight.push(message);
messagesToSend.push(message);
}
for (let batch of _batch_messages(messagesToSend)) {
_emit_write_request(ctx, batch); // Emit the write request with the batch of messages
}
};
//# sourceMappingURL=_flush.js.map