Files
travel-app/node_modules/bullmq/dist/esm/classes/queue-events-producer.js
2026-08-09 21:56:00 +00:00

33 lines
1.1 KiB
JavaScript

import { __rest } from "tslib";
import { QueueBase } from './queue-base';
/**
* The QueueEventsProducer class is used for publishing custom events.
*/
export class QueueEventsProducer extends QueueBase {
constructor(name, opts = {
connection: {},
}, backendFactory) {
super(name, Object.assign({ blockingConnection: false }, opts), backendFactory);
this.opts = opts;
}
/**
* Publish custom event to be processed in QueueEvents.
* @param argsObj - Event payload
* @param maxEvents - Max quantity of events to be saved
*/
async publishEvent(argsObj, maxEvents = 1000) {
const { eventName } = argsObj, restArgs = __rest(argsObj, ["eventName"]);
const fields = Object.assign({ event: eventName }, restArgs);
await this.backend.publishEvent(fields, maxEvents);
}
/**
* Closes the connection and returns a promise that resolves when the connection is closed.
*/
async close() {
if (!this.closing) {
this.closing = this.backend.close();
}
await this.closing;
}
}