background-process-js
Version:
A set of util tools for create background process.
26 lines (25 loc) • 1.16 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.TimeBasedPollingStrategy = void 0;
class TimeBasedPollingStrategy {
constructor(waitIntervalForEachGettedMessagesGroupInMilliseconds = 5000, maxNumberOfMessagesTotal = 100) {
this.waitIntervalForEachGettedMessagesGroupInMilliseconds = waitIntervalForEachGettedMessagesGroupInMilliseconds;
this.maxNumberOfMessagesTotal = maxNumberOfMessagesTotal;
this.messages = [];
}
async exec(provider) {
return new Promise((resolve) => {
const interval = setInterval(async () => {
const messages = await provider.getMessages();
this.messages.push(...messages);
if (this.messages.length >= this.maxNumberOfMessagesTotal) {
clearInterval(interval);
const allMessages = this.messages;
this.messages = [];
resolve(allMessages);
}
}, this.waitIntervalForEachGettedMessagesGroupInMilliseconds);
});
}
}
exports.TimeBasedPollingStrategy = TimeBasedPollingStrategy;
;