From 8c005fb7945faf4971db0fbd5a6c690f784980c8 Mon Sep 17 00:00:00 2001 From: Sai Kumar Battinoju Date: Wed, 27 Nov 2024 19:05:06 +0530 Subject: [PATCH] fix: clear stale queues instead of reclaiming them --- .../src/utilities/retryQueue/RetryQueue.ts | 45 +------------------ 1 file changed, 2 insertions(+), 43 deletions(-) diff --git a/packages/analytics-js-plugins/src/utilities/retryQueue/RetryQueue.ts b/packages/analytics-js-plugins/src/utilities/retryQueue/RetryQueue.ts index 59028b217..c1a7f716d 100644 --- a/packages/analytics-js-plugins/src/utilities/retryQueue/RetryQueue.ts +++ b/packages/analytics-js-plugins/src/utilities/retryQueue/RetryQueue.ts @@ -724,40 +724,6 @@ class RetryQueue implements IQueue { } checkReclaim() { - const createReclaimStartTask = (store: IStore) => () => { - if (store.get(QueueStatuses.RECLAIM_END) !== this.id) { - return; - } - - if (store.get(QueueStatuses.RECLAIM_START) !== this.id) { - return; - } - - this.reclaim(store.id); - }; - const createReclaimEndTask = (store: IStore) => () => { - if (store.get(QueueStatuses.RECLAIM_START) !== this.id) { - return; - } - - store.set(QueueStatuses.RECLAIM_END, this.id); - - this.schedule.run( - createReclaimStartTask(store), - this.timeouts.reclaimWait, - ScheduleModes.ABANDON, - ); - }; - const tryReclaim = (store: IStore) => { - store.set(QueueStatuses.RECLAIM_START, this.id); - store.set(QueueStatuses.ACK, this.schedule.now()); - - this.schedule.run( - createReclaimEndTask(store), - this.timeouts.reclaimWait, - ScheduleModes.ABANDON, - ); - }; const findOtherQueues = (name: string): IStore[] => { const res: IStore[] = []; const storageEngine = this.store.getOriginalEngine(); @@ -798,15 +764,8 @@ class RetryQueue implements IQueue { return res; }; - findOtherQueues(this.name).forEach(store => { - if (this.schedule.now() - store.get(QueueStatuses.ACK) < this.timeouts.reclaimTimeout) { - return; - } - - tryReclaim(store); - }); - - this.schedule.run(this.checkReclaim, this.timeouts.reclaimTimer, ScheduleModes.RESCHEDULE); + // Instead of reclaiming stale queues, clear them + findOtherQueues(this.name).forEach(store => this.clearQueueEntries(store, 0)); } clear() {