-
-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Making Queues Sendable
#129
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine
…logging, always cancel tasks even if they error, and never deadlock in job scheduling.
…ructured logging, do much better logging, check delays properly, clear data from unregistered jobs, count remaining attempts properly (and without resetting maxRetryCount every time), and always requeue for retries, and just generally be better.
fbb2ef5
to
7ce75cc
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #129 +/- ##
==========================================
+ Coverage 77.81% 82.86% +5.04%
==========================================
Files 21 22 +1
Lines 798 671 -127
==========================================
- Hits 621 556 -65
+ Misses 177 115 -62
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nothing blocking - some comments
… Sendable-safe, use assert instead of precondition in JobData init, update queuedAt value for retries in QueueWorker, QueuesCommand doesn't need to be @unchcked, make QueuesDriver require `Sendable`
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…t LOG_LEVEL env var in tests
These changes are now available in 1.15.0
The Queues package is now
Sendable
-correct. Also includes a number of fixes:QueuesCommand
now does signal handling the same wayServeCommand
does.QueueWorker
now handles retries in a much more consistent fashion and always requeues.AsyncQueue
now exists for creating Concurrency-based drivers