Releases: rq/rq
Releases Β· rq/rq
v2.2
- Added
SpawnWorker
that usesmultiprocessing.spawn
to spawn worker processes. This makes RQ usable in operating systems withoutos.fork()
like Windows. Thanks @selwin! - RQ now always use timezone aware timestamps. Thanks @deathtracktor!
StartedJobRegistry.cleanup()
now properly creates job results. Thanks @OlegZv!- Fixed a bug in worker logging configuration. Thanks @rlaminseok0824!
- Reworked RQ's pubsub thread to not use polling. Thanks @ankush!
- Fixed a bug where
WorkerPool
status is never set toSTARTED
. Thanks @taleinat! Worker.monitor_work_horse()
now properly handlesInvalidJobOperation
. Thanks @fancyweb!queue.enqueue_many
now always registers the queue in RQ's queue registry. Thanks @eswolinsky3241!- Minor fixes and improvements. Thanks @hongquan, @OlegZv, @victorb, @rparini!
v2.1
job.id
must not contain:
. Thanks @sanurielf!- Various type hint improvements by @terencehonles!
job.ended_at
should be set when job is run synchronously. Thanks @alexprabhat99!Group.all()
now properly handles non existing group. Thanks @eswolinsky3241!- Use
ruff
instead ofblack
as formatter. Thanks @hongquan!
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!