Releases: hummingbird-project/swift-jobs
Releases · hummingbird-project/swift-jobs
v1.1.0
Breaking change
- Breaking change for driver writers.
JobOptionsnow requiresinit(delayUntil:). #114
Minor release changes
- Add JobQueueDriver.context that holds contextual data about currently running instance of queue. #118
- Cleanup jobs tagged processing whose worker has stopped responding. #118
- Provide access to jobqueue when constructing middleware result builder. #123
- Conform
JobQueueProtocoltoSendable
Patch release changes
v1.0.0
No major changes from the release candidate 1.0.0-rc.1
Job queuing system for offloading workloads (jobs) to other nodes.
- Queue, pause, resume, cancel jobs
- Queue delayed jobs
- Job processor can be run on multiple nodes
- Multiple drivers available (using Valkey/Redis, Postgres)
- Graceful handling of SIGTERM, SIGINT
- Job scheduler for crontab style triggering of jobs
- Customizable retry support, with default implementation using exponential jitter
- Middleware support to allow for additional customisation
- Support for metrics and distributed tracing
v1.0.0 Release Candidate 1
Minor release changes
- Add
JobQueueOptions.gracefulShutdownTimeout. Graceful shutdown by default waits for the currently running jobs to finish. This adds a timeout before cancelling a job. #99 - Don't require job parameters to conform to protocol
JobParameters. And add additional API points that take a job name alongside the job parameters #101, #102 - Add
JobMetadataDriverprotocol for a queue that supports setting/getting date and also acquiring and releasing locks. Both of these are needed by the schedular. - Separate job processing service from
JobQueue.JobQueue.processor(options:)will create aServiceto process the jobs on your job queue. #104 - Added
JobMiddleware.onCompletedJob()and provide separate context types for each event type. #107 - Add option to run
JobScheduleron multiple nodes but only have one of them schedule jobs. If one node goes down another node will pick up the task of scheduling jobs. #105 - Swift 6 is the minimum required version.
Patch release changes
Other changes
- Move to using Swift Testing
v1.0.0 Beta 8
Breaking changes
- Add JobMiddleware. Move metrics and tracing to middleware. #54
- Move Job serialization to drivers. #63
- Require all job parameters to conform to JobParameters. #69
- Move
JobOptionsto job queue driver. #78
Minor release changes
- Add more information to JobQueueError. #55
- Keep existing JobID when retrying jobs. #64
- Add
JobQueueProtocol. #71, #81 - Add parsing of crontab format in scheduler. #74
- Add
JobRetryStrategyto allow flexibility in how failed jobs are retried. #75 - Add
queuedAtDate toJobExecutionContext. #73 - Add current
attemptnumber toJobExecutionContext. #94 - Use
FoundationEssentialswhen it is available. #76 - Add
JobNamein metrics where it wasn't already available. #72 - Add job queue name to metrics and trace spans. #82
- Add timeout to JobDefinition for cancel jobs that are stuck. #89
- Add protocol for queues that support Resumable and Cancellable jobs. #90
Patch release changes
v1.0.0 Beta 7
v1.0.0 Beta 6
Patch release changes
- Fix issue where scheduled task could be scheduled twice. #44
Other changes
- Move to Apple's swift-format for formatting source
v1.0.0 Beta 5
Patch release changes
- Fix issue where
onMinutesschedules were not being setup correctly. #38