Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Unreleased¶
v0.3.0.post2 (2024-05-07)¶
This post-release contains minor documentation improvements.
v0.3.0.post1 (2024-05-05)¶
This post-release contains minor documentation improvements.
v0.3.0 (2024-05-05)¶
Several breaking changes have been introduced in this release.
Scheduler
has been renamed to Queue
to better reflect its purpose.
Preliminary support for locking jobs has been added to allow for multiple workers concurrently consuming jobs from the database. Users must call the new locking methods to take advantage of this.
This locking mechanism is entirely experimental. For now, the queue does not provide a context manager to lock and unlock jobs, which poses a risk of leaving jobs deadlocked.
See examples/thread_pool.py and examples/threads.py for demonstrations of the new API.
Added¶
Queue
(renamed fromScheduler
)Queue.get_next_job_delay()
(replacesQueue.get_seconds_until_next_job()
)Job.queue
(renamed fromJob.scheduler
)Job.delay
(replacesJob.get_seconds_until_start()
)
Changed¶
BREAKING CHANGE: Job and Queue delay methods no longer return negative delays to simplify usage for end users. If a negative delay is still desired to know how overdue a job is, users will have to do
job.starts_at - queue.time()
instead.Queue.get_next_job()
andQueue.get_next_job_delay()
are now guaranteed to return the job with the smaller ID if two jobs started at the same time. Previously this was not part of the database query, making the ordering reliant on SQLite’s implementation details.
Removed¶
Scheduler
(renamed toQueue
)Queue.get_seconds_until_next_job()
in favour ofQueue.get_next_job_delay()
Job.scheduler
(renamed toJob.queue
)Job.get_seconds_until_start()
in favour ofJob.delay
v0.2.1 (2024-05-02)¶
This release includes more documentation enhancements and test coverage.
Fixed¶
Don’t apply default values when
0
is passed for any time parameter in Job / Scheduler methodsThis fix mainly applies to users that provide their own time functions for the scheduler.
v0.2.0 (2024-05-01)¶
This release provides this documentation site along with a few minor changes.
Added¶
More inline documentation to source code
Scheduler.close()
alternative to the context manager protocol
v0.1.1 (2024-05-01)¶
Fixed¶
Make
Job.complete(completed_at=)
parameter optional as implied by documentationFix readme example passing a negative delay to
time.sleep()
v0.1.0 (2024-05-01)¶
This marks the first release of the joblin library, rewritten from the original gist.