UNPKG

background-process-js

Version:
26 lines (25 loc) 1.16 kB
"use strict"; 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;