Skip to content

Releases: rq/rq

v2.0

28 Oct 15:45
Compare
Choose a tag to compare

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 of Worker(worker_ttl=10). Thanks @stv8!
  • Added a cleanup parameter to registry.get_job_ids() and registry.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 and RandomWorker are deprecated. Use --dequeue-strategy <round-robin/random> instead.
  • Job.__init__ requires both id and connection to be passed in.
  • Job.exists() requires connection argument to be passed in.
  • Queue.all() requires connection argument.
  • @job decorator now requires connection 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 return JobStatus 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

01 May 07:14
Compare
Choose a tag to compare
  • Fixed a bug that may cause jobs from intermediate queue to be moved to FailedJobRegistry. Thanks @selwin!

v1.16.1

09 Mar 02:35
Compare
Choose a tag to compare
  • Added worker_pool.get_worker_process() to make WorkerPool easier to extend. Thanks @selwin!

v1.16

24 Feb 06:24
Compare
Choose a tag to compare
  • 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 via enqueue_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

21 Jun 01:53
Compare
Choose a tag to compare
  • Fixed a bug that may cause a crash when cleaning intermediate queue. Thanks @selwin!
  • Fixed a bug that may cause canceled jobs to still run dependent jobs. Thanks @fredsod!

v1.15

27 May 02:28
Compare
Choose a tag to compare
  • 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 on DICT_CONFIG key present in config file. Thanks @juur!
  • Whenever possible, Worker now uses lmove() 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

05 May 14:05
Compare
Choose a tag to compare
  • Fixes a crash that happens if Redis connection uses SSL. Thanks @tchapi!
  • Fixes a crash if job.meta() is loaded using the wrong serializer. Thanks @gabriels1234!

v1.14

01 May 11:17
Compare
Choose a tag to compare
  • 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

19 Feb 14:09
Compare
Choose a tag to compare
  • Added work_horse_killed_handler argument to Worker. 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 ignores worker_ttl. Thanks @ronlut!
  • Use job.return_value() instead of job.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

15 Jan 11:23
Compare
Choose a tag to compare
  • 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!