Releases: rq/rq
Releases Β· rq/rq
v2.0
New Features
- Multiple job executions: a job can now have multiple executions running simultaneously. This will enable future support for long running scheduled jobs. Thanks @selwin!
Worker(default_worker_ttl=10)
is deprecated in favor ofWorker(worker_ttl=10)
. Thanks @stv8!- Added a
cleanup
parameter toregistry.get_job_ids()
andregistry.get_job_count()
. Thanks @anton-daneyko-ultramarin! - Added support for AWS Elasticache Serverless Redis. Thanks @bobbywatson3!
- You can now specify TTL for deferred jobs. Thanks @hberntsen!
- RQ's code base is now typed (mostly). Thanks @terencehonles!
- Other minor fixes and improvements. Thanks @hongquan, @rbange, @jackkinsella, @terencehonles, @wckao, @sim6!
Breaking Changes
- Dropped support for Redis server < 4
RoundRobinWorker
andRandomWorker
are deprecated. Use--dequeue-strategy <round-robin/random>
instead.Job.__init__
requires bothid
andconnection
to be passed in.Job.exists()
requiresconnection
argument to be passed in.Queue.all()
requiresconnection
argument.@job
decorator now requiresconnection
argument.- Built in Sentry integration has been removed. To use Sentry with RQ, please refer to Sentry's docs.
Bug Fixes
- Fixed an issue where abandoned jobs are sometimes not enqueued. Thanks @Marishka17!
- Fixes an issue where Redis connection does not expose
name
attribute. Thanks @wckao! job.get_status()
will now always returnJobStatus
enum. Thanks @indepndnt!- Queue key should always be created even if jobs are deferred. Thanks @sim6!
- RQ's pubsub thread will now attempt to reconnect on Redis connection errors. Thanks @fcharlier!
v1.16.2
v1.16.1
v1.16
- Added a way for jobs to wait for latest result
job.latest_result(timeout=60)
. Thanks @ajnisbet! - Fixed an issue where
stopped_callback
is not respected when job is enqueued viaenqueue_many()
. Thanks @eswolinsky3241! worker-pool
no longer ignores--quiet
. Thanks @Mindiell!- Added compatibility with AWS Serverless Redis. Thanks @peter-gy!
worker-pool
now starts with scheduler. Thanks @chromium7!
v1.15.1
v1.15
- Added
Callback(on_stopped='my_callback)
. Thanks @eswolinsky3241! Callback
now accepts dotted path to function as input. Thanks @rishabh-ranjan!queue.enqueue_many()
now supports job dependencies. Thanks @eswolinsky3241!rq worker
CLI script now configures logging based onDICT_CONFIG
key present in config file. Thanks @juur!- Whenever possible,
Worker
now useslmove()
to implement reliable queue pattern. Thanks @selwin! Scheduler
should only release locks that it successfully acquires. Thanks @xzander!- Fixes crashes that may happen by changes to
as_text()
function in v1.14. Thanks @tchapi! - Various linting, CI and code quality improvements. Thanks @robhudson!
v1.14.1
v1.14
- Added
WorkerPool
(beta) that manages multiple workers in a single CLI. Thanks @selwin! - Added a new
Callback
class that allows more flexibility in declaring job callbacks. Thanks @ronlut! - Fixed a regression where jobs with unserializable return value crashes RQ. Thanks @tchapi!
- Added
--dequeue-strategy
option to RQ's CLI. Thanks @ccrvlh! - Added
--max-idle-time
option to RQ's worker CLI. Thanks @ronlut! - Added
--maintenance-interval
option to RQ's worker CLI. Thanks @ronlut! - Fixed RQ usage in Windows as well as various other refactorings. Thanks @ccrvlh!
- Show more info on
rq info
CLI command. Thanks @iggeehu! queue.enqueue_jobs()
now properly account for job dependencies. Thanks @sim6!TimerDeathPenalty
now properly handles negative/infinite timeout. Thanks @marqueurs404!
v1.13.0
- Added
work_horse_killed_handler
argument toWorker
. Thanks @ronlut! - Fixed an issue where results aren't properly persisted on synchronous jobs. Thanks @selwin!
- Fixed a bug where job results are not properly persisted when
result_ttl
is-1
. Thanks @sim6! - Various documentation and logging fixes. Thanks @lowercase00!
- Improve Redis connection reliability. Thanks @lowercase00!
- Scheduler reliability improvements. Thanks @OlegZv and @lowercase00!
- Fixed a bug where
dequeue_timeout
ignoresworker_ttl
. Thanks @ronlut! - Use
job.return_value()
instead ofjob.result
when processing callbacks. Thanks @selwin! - Various internal refactorings to make
Worker
code more easily extendable. Thanks @lowercase00! - RQ's source code is now black formatted. Thanks @aparcar!
v1.12.0
- RQ now stores multiple job execution results. This feature is only available on Redis >= 5.0 Redis Streams. Please refer to the docs for more info. Thanks @selwin!
- Improve performance when enqueueing many jobs at once. Thanks @rggjan!
- Redis server version is now cached in connection object. Thanks @odarbelaeze!
- Properly handle
at_front
argument when jobs are scheduled. Thanks @gabriels1234! - Add type hints to RQ's code base. Thanks @lowercase00!
- Fixed a bug where exceptions are logged twice. Thanks @selwin!
- Don't delete
job.worker_name
after job is finished. Thanks @eswolinsky3241!