Support cancelling ML async jobs#1144
Draft
carlosgjs wants to merge 9 commits intoRolnickLab:mainfrom
Draft
Conversation
👷 Deploy request for antenna-ssec pending review.Visit the deploys page to approve it
|
✅ Deploy Preview for antenna-preview canceled.
|
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…o Revoked when cancelling
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.
Summary
This pull request introduces improvements to job cancellation and cleanup logic, particularly for asynchronous jobs using NATS/Redis. It adds better handling for unknown progress states, ensures cleanup routines are consistently invoked, and improves code clarity by renaming and refactoring functions.
Job cancellation and cleanup improvements:
The
cancelmethod in theJobmodel now callscleanup_async_job_if_neededto ensure async resources are cleaned up when a job is cancelled.The cleanup function
_cleanup_job_if_neededhas been renamed tocleanup_async_job_if_neededand its type signature clarified; all references throughout the codebase have been updated to use the new name.Handling unknown progress states:
The
JobStateProgressclass now includes anunknownflag to indicate when progress cannot be determined, such as missing Redis keys.When progress information is unknown during NATS pipeline result processing, a warning is logged and the task returns early, preventing further processing and retrying as needed.
The
_commit_updatemethod returns aJobStateProgresswithunknown=Truewhen Redis keys are missing, making this state distinguishable from other errors.Resource cleanup enhancements:
cleanupmethod for async job state now deletes the lock key in addition to other cache keys, ensuring all Redis resources are properly released.Testing
Checklist
test_cancel_job()is currently just a stub