diff options
Diffstat (limited to 'packages/testnet-faucets/src/ts/dispatch_queue.ts')
-rw-r--r-- | packages/testnet-faucets/src/ts/dispatch_queue.ts | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/packages/testnet-faucets/src/ts/dispatch_queue.ts b/packages/testnet-faucets/src/ts/dispatch_queue.ts deleted file mode 100644 index 3d0958fbf..000000000 --- a/packages/testnet-faucets/src/ts/dispatch_queue.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { intervalUtils, logUtils } from '@0x/utils'; -import * as _ from 'lodash'; - -import { errorReporter } from './error_reporter'; - -const MAX_QUEUE_SIZE = 500; -const DEFAULT_QUEUE_INTERVAL_MS = 1000; - -export class DispatchQueue { - private readonly _queueIntervalMs: number; - private readonly _queue: Array<() => Promise<void>>; - private _queueIntervalIdIfExists?: NodeJS.Timer; - constructor() { - this._queueIntervalMs = DEFAULT_QUEUE_INTERVAL_MS; - this._queue = []; - this._start(); - } - public add(taskAsync: () => Promise<void>): boolean { - if (this.isFull()) { - return false; - } - this._queue.push(taskAsync); - return true; - } - public size(): number { - return this._queue.length; - } - public isFull(): boolean { - return this.size() >= MAX_QUEUE_SIZE; - } - public stop(): void { - if (!_.isUndefined(this._queueIntervalIdIfExists)) { - intervalUtils.clearAsyncExcludingInterval(this._queueIntervalIdIfExists); - } - } - private _start(): void { - this._queueIntervalIdIfExists = intervalUtils.setAsyncExcludingInterval( - async () => { - const taskAsync = this._queue.shift(); - if (_.isUndefined(taskAsync)) { - return Promise.resolve(); - } - await taskAsync(); - }, - this._queueIntervalMs, - (err: Error) => { - logUtils.log(`Unexpected err: ${err} - ${JSON.stringify(err)}`); - // tslint:disable-next-line:no-floating-promises - errorReporter.reportAsync(err); - }, - ); - } -} |