Releases: rq/rq
Releases · rq/rq
v2.6
v2.5
CronScheduler
now supports running periodic jobs based on cron string. Thanks @selwin!- Fixed an issue where
SpawnWorker
does not properly register successful job executions. Thanks @selwin! - Fixed an issue where
Worker
may fail to register custom job and queue classes. Thanks @armicron! - Added
result.worker_name
to easily trace whichWorker
generated the result. Thanks @selwin! - Dropped support for Redis server < 5. Thanks @selwin!
v2.4.1
Worker
will now automatically chooseTimerDeathPenalty
ifUnixSignalDeathPenalty
is not available. Thanks @selwin!- Introduced
CREATED
Job
status for jobs that are not enqueued not deferred. Thanks @selwin! Worker
can now importJob
andQueue
classes from string. Thanks @selwin!- Fixed a bug in
Group.cleanup()
. Thanks @dixoncrews-gdl! - Logging improvements and code cleanups. Thanks @selwin, @SpecLad!
v2.4
- Added
rq cron
CLI command. Thanks @selwin! - Various tests, typing improvements and cleanups. Thanks @SpecLad!
- When a job is canceled, you can now optionally clean it from dependencies using
job.cancel(remove_from_dependencies=True)
. Thanks @Marishka17! - RQ now requires Python >= 3.9. Thanks @Jankovn and @selwin!
v2.3.3
v2.3.2
v2.3.1
v2.3
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!