Skip to content

Commit 3e040d4

Browse files
committed
fix: persistent tracking queue poller
1 parent 93532c1 commit 3e040d4

File tree

1 file changed

+8
-0
lines changed
  • packages/experiment-browser/src/integration

1 file changed

+8
-0
lines changed

packages/experiment-browser/src/integration/manager.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ export class PersistentTrackingQueue {
170170
private readonly maxQueueSize: number;
171171
private readonly isLocalStorageAvailable = isLocalStorageAvailable();
172172
private inMemoryQueue: ExperimentEvent[] = [];
173+
private poller: any | undefined;
173174
private tracker: ((event: ExperimentEvent) => boolean) | undefined;
174175

175176
constructor(instanceName: string, maxQueueSize: number = MAX_QUEUE_SIZE) {
@@ -186,6 +187,9 @@ export class PersistentTrackingQueue {
186187

187188
setTracker(tracker: (event: ExperimentEvent) => boolean): void {
188189
this.tracker = tracker;
190+
this.poller = safeGlobal.setInterval(() => {
191+
this.loadFlushStore();
192+
}, 1000);
189193
this.loadFlushStore();
190194
}
191195

@@ -196,6 +200,10 @@ export class PersistentTrackingQueue {
196200
if (!this.tracker(event)) return;
197201
}
198202
this.inMemoryQueue = [];
203+
if (this.poller) {
204+
safeGlobal.clearInterval(this.poller);
205+
this.poller = undefined;
206+
}
199207
}
200208

201209
private loadQueue(): void {

0 commit comments

Comments
 (0)