Repository navigation
Conversation
Deletes the provider-specific StartWorkingImpl loop in favor of QueueBase.StartWorker (backoff on dequeue errors, cancellation-safe stop, safe abandon/auto-complete) and runs the shared worker fault-injection tests. Requires the Foundatio core change on feature/queue-worker-loop.
niemyjski
force-pushed
the
feature/queue-worker-loop
branch
from
October 8, 2026 22:01
408e05a to
12989e1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Follow-up to #103 (Queue GroupId). Hold for the next release. Depends on FoundatioFx/Foundatio#584. Stacked on
feature/queue-group-id; GitHub retargets it tomainonce #103 merges.What
Deletes this provider's copy of the
StartWorkingAsyncloop and calls the sharedQueueBase.StartWorker(...)fromStartWorkingImpl. The private_workerErrorCountfield is replaced byQueueBase.WorkerErrorCount/ResetWorkerErrorCount().The result: dequeue errors back off (1s doubling to 30s, with jitter) instead of retrying on a fixed interval or stopping the worker, abandon/auto-complete failures go through the resilience policy and don't stop the worker, and cancellation stops it without counting an error.
References the
13.0.5-preview.queue-worker-loop.0.19core and TestHarness preview packages. Switch back to the released package before merging.Risk
Behavior change only in worker error handling. Enqueue, dequeue, complete, abandon and dead-letter paths are unchanged.
Tests
Adds overrides for the new shared tests (
StartWorkingAsync_WhenDequeueThrows_KeepsWorkingAsync,StartWorkingAsync_WhenAbandonThrows_KeepsWorkingAsync,StartWorkingAsync_WhenCancelled_StopsWithoutWorkerErrorsAsync). The full suite passed twice locally against the emulator, and the worker tests passed 10 consecutive runs.