[WC-3107] Prevent burst execution in Events widget #1940
+221
−73
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Pull request type
Bug fix (non-breaking change which fixes an issue)
Description
There are two major issues addressed in this change
First is burst execution of events in inactive tabs, due to throttled timers. This change prevents them from piling up and executing all at once. This is kinda hard to test I think, because the conditions when throttling actually happens are unclear.
Second and is likely the original cause of the issue is that the microflow took more than 1 second to finish but the event timer didn't account for that, it was not checking that previous run is not yet finished and didn't account for that, making it a race condition in the microflow which gave the original symptoms - multiple popups.
What to test