Skip to content

Update rq to 1.8.0#609

Closed
pyup-bot wants to merge 1 commit intomasterfrom
pyup-update-rq-0.12.0-to-1.8.0
Closed

Update rq to 1.8.0#609
pyup-bot wants to merge 1 commit intomasterfrom
pyup-update-rq-0.12.0-to-1.8.0

Conversation

@pyup-bot
Copy link
Copy Markdown
Collaborator

This PR updates rq from 0.12.0 to 1.8.0.

Changelog

1.8.0

* You can now declare multiple job dependencies. Thanks skieffer and thomasmatecki for laying the groundwork for multi dependency support in RQ.
* Added `RoundRobinWorker` and `RandomWorker` classes to control how jobs are dequeued from multiple queues. Thanks bielcardona!
* Added `--serializer` option to `rq worker` CLI. Thanks f0cker!
* Added support for running asyncio tasks. Thanks MyrikLD!
* Added a new `STOPPED` job status so that you can differentiate between failed and manually stopped jobs. Thanks dralley!
* Fixed a serialization bug when used with job dependency feature. Thanks jtfidje!
* `clean_worker_registry()` now works in batches of 1,000 jobs to prevent modifying too many keys at once. Thanks AxeOfMen and TheSneak!
* Workers will now wait and try to reconnect in case of Redis connection errors. Thanks Asrst!

1.7.0

* Added `job.worker_name` attribute that tells you which worker is executing a job. Thanks selwin!
* Added `send_stop_job_command()` that tells a worker to stop executing a job. Thanks selwin!
* Added `JSONSerializer` as an alternative to the default `pickle` based serializer. Thanks JackBoreczky!
* Fixes `RQScheduler` running on Redis with `ssl=True`. Thanks BobReid!

1.6.1

* Worker now properly releases scheduler lock when run in burst mode. Thanks selwin!

1.6.0

* Workers now listen to external commands via pubsub. The first two features taking advantage of this infrastructure are `send_shutdown_command()` and `send_kill_horse_command()`. Thanks selwin!
* Added `job.last_heartbeat` property that's periodically updated when job is running. Thanks theambient!
* Now horses are killed by their parent group. This helps in cleanly killing all related processes if job uses multiprocessing. Thanks theambient!
* Fixed scheduler usage with Redis connections that uses custom parser classes. Thanks selwin!
* Scheduler now enqueue jobs in batches to prevent lock timeouts. Thanks nikkonrom!
* Scheduler now follows RQ worker's logging configuration. Thanks christopher-dG!

1.5.2

* Scheduler now uses the class of connection that's used. Thanks pacahon!
* Fixes a bug that puts retried jobs in `FailedJobRegistry`. Thanks selwin!
* Fixed a deprecated import. Thanks elmaghallawy!

1.5.1

* Fixes for Redis server version parsing. Thanks selwin!
* Retries can now be set through job decorator. Thanks nerok!
* Log messages below logging.ERROR is now sent to stdout. Thanks selwin!
* Better logger name for RQScheduler. Thanks atainter!
* Better handling of exceptions thrown by horses. Thanks theambient!

1.5.0

* Failed jobs can now be retried. Thanks selwin!
* Fixed scheduler on Python > 3.8.0. Thanks selwin!
* RQ is now aware of which version of Redis server it's running on. Thanks aparcar!
* RQ now uses `hset()` on redis-py >= 3.5.0. Thanks aparcar!
* Fix incorrect worker timeout calculation in SimpleWorker.execute_job(). Thanks davidmurray!
* Make horse handling logic more robust. Thanks wevsty!

1.4.3

* Added `job.get_position()` and `queue.get_job_position()`. Thanks aparcar!
* Longer TTLs for worker keys to prevent them from expiring inside the worker lifecycle. Thanks selwin!
* Long job args/kwargs are now truncated during logging. Thanks JhonnyBn!
* `job.requeue()` now returns the modified job. Thanks ericatkin!

1.4.2

* Reverted changes to `hmset` command which causes workers on Redis server < 4 to crash. Thanks selwin!
* Merged in more groundwork to enable jobs with multiple dependencies. Thanks thomasmatecki!

1.4.1

* Default serializer now uses `pickle.HIGHEST_PROTOCOL` for backward compatibility reasons. Thanks bbayles!
* Avoid deprecation warnings on redis-py >= 3.5.0. Thanks bbayles!

1.4.0

* Custom serializer is now supported. Thanks solababs!
* `delay()` now accepts `job_id` argument. Thanks grayshirt!
* Fixed a bug that may cause early termination of scheduled or requeued jobs. Thanks rmartin48!
* When a job is scheduled, always add queue name to a set containing active RQ queue names. Thanks mdawar!
* Added `--sentry-ca-certs` and `--sentry-debug` parameters to `rq worker` CLI. Thanks kichawa!
* Jobs cleaned up by `StartedJobRegistry` are given an exception info. Thanks selwin!
* Python 2.7 is no longer supported. Thanks selwin!

1.3.0

* Support for infinite job timeout. Thanks theY4Kman!
* Added `__main__` file so you can now do `python -m rq.cli`. Thanks bbayles!
* Fixes an issue that may cause zombie processes. Thanks wevsty!
* `job_id` is now passed to logger during failed jobs. Thanks smaccona!
* `queue.enqueue_at()` and `queue.enqueue_in()` now supports explicit `args` and `kwargs` function invocation. Thanks selwin!

1.2.2

* `Job.fetch()` now properly handles unpickleable return values. Thanks selwin!

1.2.1

* `enqueue_at()` and `enqueue_in()` now sets job status to `scheduled`. Thanks coolhacker170597!
* Failed jobs data are now automatically expired by Redis. Thanks selwin!
* Fixes `RQScheduler` logging configuration. Thanks FlorianPerucki!

1.2.0

* This release also contains an alpha version of RQ's builtin job scheduling mechanism. Thanks selwin!
* Various internal API changes in preparation to support multiple job dependencies. Thanks thomasmatecki!
* `--verbose` or `--quiet` CLI arguments should override `--logging-level`. Thanks zyt312074545!
* Fixes a bug in `rq info` where it doesn't show workers for empty queues. Thanks zyt312074545!
* Fixed `queue.enqueue_dependents()` on custom `Queue` classes. Thanks van-ess0!
* `RQ` and Python versions are now stored in job metadata. Thanks eoranged!
* Added `failure_ttl` argument to job decorator. Thanks pax0r!

1.1.0

- Added `max_jobs` to `Worker.work` and `--max-jobs` to `rq worker` CLI. Thanks perobertson!
- Passing `--disable-job-desc-logging` to `rq worker` now does what it's supposed to do. Thanks janierdavila!
- `StartedJobRegistry` now properly handles jobs with infinite timeout. Thanks macintoshpie!
- `rq info` CLI command now cleans up registries when it first runs. Thanks selwin!
- Replaced the use of `procname` with `setproctitle`. Thanks j178!

1.0

Backward incompatible changes:

- `job.status` has been removed. Use `job.get_status()` and `job.set_status()` instead. Thanks selwin!

- `FailedQueue` has been replaced with `FailedJobRegistry`:
* `get_failed_queue()` function has been removed. Please use `FailedJobRegistry(queue=queue)` instead.
* `move_to_failed_queue()` has been removed.
* RQ now provides a mechanism to automatically cleanup failed jobs. By default, failed jobs are kept for 1 year.
* Thanks selwin!

- RQ's custom job exception handling mechanism has also changed slightly:
* RQ's default exception handling mechanism (moving jobs to `FailedJobRegistry`) can be disabled by doing `Worker(disable_default_exception_handler=True)`.
* Custom exception handlers are no longer executed in reverse order.
* Thanks selwin!

- `Worker` names are now randomized. Thanks selwin!

- `timeout` argument on `queue.enqueue()` has been deprecated in favor of `job_timeout`. Thanks selwin!

- Sentry integration has been reworked:
* RQ now uses the new [sentry-sdk](https://pypi.org/project/sentry-sdk/) in place of the deprecated [Raven](https://pypi.org/project/raven/) library
* RQ will look for the more explicit `RQ_SENTRY_DSN` environment variable instead of `SENTRY_DSN` before instantiating Sentry integration
* Thanks selwin!

- Fixed `Worker.total_working_time` accounting bug. Thanks selwin!

0.13.0

- Compatibility with Redis 3.0. Thanks dash-rai!
- Added `job_timeout` argument to `queue.enqueue()`. This argument will eventually replace `timeout` argument. Thanks selwin!
- Added `job_id` argument to `BaseDeathPenalty` class. Thanks loopbio!
- Fixed a bug which causes long running jobs to timeout under `SimpleWorker`. Thanks selwin!
- You can now override worker's name from config file. Thanks houqp!
- Horses will now return exit code 1 if they don't terminate properly (e.g when Redis connection is lost). Thanks selwin!
- Added `date_format` and `log_format` arguments to `Worker` and `rq worker` CLI. Thanks shikharsg!
Links

@pyup-bot pyup-bot mentioned this pull request Mar 31, 2021
@pyup-bot
Copy link
Copy Markdown
Collaborator Author

Closing this in favor of #618

@pyup-bot pyup-bot closed this May 18, 2021
@ednilson ednilson deleted the pyup-update-rq-0.12.0-to-1.8.0 branch May 18, 2021 15:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant