1128 Commits (af2dfb14460db9d0c7883c6b9381bd06e3ab607d)

Author SHA1 Message Date
Paul Robertson e1c135d4de add the ability to have the worker stop executing after a max amount of jobs (#1094)
* add the ability to have the worker stop executing after a max amount of jobs

* rename to max-jobs

* updated logging messages
6 years ago
janierdavila d191adbeb9 Fixes disable-job-desc-logging flag on CLI (#1096)
PR #991 introduced this useful flag but it seems to have missed
passing this flag to the worker. This simple commit fixes that
issue.
6 years ago
秋葉 e40fc393b2 remove unused code (#1092) 6 years ago
Ted Summer 79a6fd7999 Fix timeout adding job to StartedJobRegistry (#1086)
* Fix timeout adding job to StartedJobRegistry

* Fix prepare_job_execution handling neg timeout

* Add test for inf job timeout in StartedJobRegistry

* refactor(worker): simplify checking neg timeout
6 years ago
Selwin Ong 7021cedaf9
Implemented Job.fetch_many (#1072) 6 years ago
Selwin Ong c4cbb3af2f
RQ v1.0! (#1059)
* Added FailedJobRegistry.

* Added job.failure_ttl.

* queue.enqueue() now supports failure_ttl

* Added registry.get_queue().

* FailedJobRegistry.add() now assigns DEFAULT_FAILURE_TTL.

* StartedJobRegistry.cleanup() now moves expired jobs to FailedJobRegistry.

* Failed jobs are now added to FailedJobRegistry.

* Added FailedJobRegistry.requeue()

* Document the new `FailedJobRegistry` and changes in custom exception handler behavior.

* Added worker.disable_default_exception_handler.

* Document --disable-default-exception-handler option.

* Deleted worker.failed_queue.

* Deleted "move_to_failed_queue" exception handler.

* StartedJobRegistry should no longer move jobs to FailedQueue.

* Deleted requeue_job

* Fixed test error.

* Make requeue cli command work with FailedJobRegistry

* Added .pytest_cache to gitignore.

* Custom exception handlers are no longer run in reverse

* Restored requeue_job function

* Removed get_failed_queue

* Deleted FailedQueue

* Updated changelog.

* Document `failure_ttl`

* Updated docs.

* Remove job.status

* Fixed typo in test_registry.py

* Replaced _pipeline() with pipeline()

* FailedJobRegistry no longer fails on redis-py>=3

* Fixes test_clean_registries

* Worker names are now randomized

* Added a note about random worker names in CHANGES.md

* Worker will now stop working when encountering an unhandled exception.

* Worker should reraise SystemExit on cold shutdowns

* Added anchor.js to docs

* Support for Sentry-SDK (#1045)

* Updated RQ to support sentry-sdk

* Document Sentry integration

* Install sentry-sdk before running tests

* Improved rq info CLI command to be more efficient when displaying lar… (#1046)

* Improved rq info CLI command to be more efficient when displaying large number of workers

* Fixed an rq info --by-queue bug

* Fixed worker.total_working_time bug (#1047)

* queue.enqueue() no longer accepts `timeout` argument (#1055)

* Clean worker registry (#1056)

* queue.enqueue() no longer accepts `timeout` argument

* Added clean_worker_registry()

* Show worker hostname and PID on cli (#1058)

* Show worker hostname and PID on cli

* Improve test coverage

* Remove Redis version check when SSL is used

* Bump version to 1.0

* Removed pytest_cache/README.md

* Changed worker logging to use exc_info=True

* Removed unused queue.dequeue()

* Fixed typo in CHANGES.md

* setup_loghandlers() should always call logger.setLevel() if specified
6 years ago
Wolfgang Langner abf6881114 Fix #1040 queue default timeout bug. (#1042)
Add test for queue default_timeout.
6 years ago
Wolfgang Langner 8fc987dc68 Make logging in worker consitent. (#1030)
Switch some messages from warn to info because it is normal requested bahavior.
6 years ago
Chyroc d9798fd64f refactor: job status check (#1035) 6 years ago
Chyroc 7eb95bf405 refactor: use try ImportError instead of py-version check (#1034) 6 years ago
Wolfgang Langner 7a6abb4738 Fix collections abc import deprecation warning. (#1032)
* Fix collections abc import.
Prepare for 3.8 when it is deprecated.

* Fix Pyton 2.7 build.
6 years ago
Finnci 14db0ecd26 Update/add flag for description logging (#991)
* test workers

* indent

* add docs and add option to the cli

* rename flag for cli

* logging
6 years ago
Selwin Ong bf0b4308fd Bump version to 0.13.0 6 years ago
Darshan Rai ada2ad03ca modify zadd calls for redis-py 3.0 (#1016)
* modify zadd calls for redis-py 3.0

redis-py 3.0 changes the zadd interface that accepts a single
mapping argument that is expected to be a dict.
https://github.com/andymccurdy/redis-py#mset-msetnx-and-zadd

* change FailedQueue.push_job_id to always push a str

redis-py 3.0 does not attempt to cast values to str and is left
to the user.

* remove Redis connection patching

Since in redis-py 3.0, Redis == StrictRedis class, we no longer
need to patch _zadd and other methods.
Ref: https://github.com/rq/rq/pull/1016#issuecomment-441010847
6 years ago
Selwin Ong 6559b0ffd7
Replace "timeout" argument in queue.enqueue() with "job_timeout" (#1010) 6 years ago
John Stowers eaf598d73c Pass job_id to death penalty class (#936)
This allows custom workers to use associated
custom Timeout classes and apply custom timeouts
or less messy death methods
6 years ago
Selwin Ong 47d291771f
SimpleWorker's ttl must always be longer than jobs. (#1002) 6 years ago
Qingping Hou 051104b0ff support workder name override from config file (#947)
* support workder name override from config file

* update docs for NAME config

* Update workers.md
6 years ago
Selwin Ong e00ff97867
Fix heroku worker (#993)
* Attempt to fix HerokuWorker test.

* Fixed test_shutdown_double_sigrtmin

* Another attempt to fix test

* Another attempt to fix test

* Another attempt to fix test

* When work horse runs into an exception, raise that exception before calling os._exit()
6 years ago
Selwin Ong 25f2b75b1f Horse should exit with return code 1 if it raises an exception 6 years ago
Selwin Ong 4759c43067 horse should always call os._exit(0) 6 years ago
shikharsg cc19d1a89e added logging formatting options (#979)
* added logging formatting options

* added docs for log formatting options

* fixed naming format
6 years ago
Paul Robertson e86fb57366 add is_async property to queue (#982) 6 years ago
Selwin Ong 6a376191d9 Bump version to 0.12.0 7 years ago
chevell c2b939d2df Replace 'async' keyword with 'is_async' for Queue objects (#977)
* Replaced async keyword with is_async in the Queue class to fix reserved keyword syntax errors in Python 3.7

* Updated tests to use is_async keyword when instantiating Queue objects

* Updated docs to reference is_async keyword for Queue objects

* Updated tox.ini, setup.py and .travis.yml with references to Python 3.7
7 years ago
Selwin Ong a5596caf42 Bump version to 0.11.0 7 years ago
Theofanis Despoudis 875cc27c2f #908 Using a timeout string value for job works (#955)
Fixes https://github.com/rq/rq/issues/908
7 years ago
Theofanis Despoudis d6b12c2402 Issue 872 (#954)
* Fixes #872 - Use -1 to indicate infinite ttl

* Fixes #872 Restored comma

* #872 Code review fix
7 years ago
Selwin Ong 531fde8e3c worker.main_work_horse should always return 0 7 years ago
Thomas Kriechbaumer 3133d94b58 add periodic worker heartbeats (#945)
* add periodic worker heartbeats

fixes #944

* improve worker default option handling
7 years ago
Selwin Ong c639018fb9 Registry objects can be instantiated by passing a queue object. 7 years ago
stj 487ef72f21 Define redis key prefix as class variable (#939)
* Define redis key prefix as class variable

Some prefixes were hardcoded in several places. This made it hard to
use custom prefixes via subclasses.

Resolves #920

* fixup! Define redis key prefix as class variable
7 years ago
Christophe Olinger a6eb5d37ee Delete dependents of job explicitely (#916)
* Initial take on delete_dependents

* Add tests including corner cases

* No need to canel dependents since they are not in a queue yet anyway

* The dependents keys can be deleted in all cases

* Update tests to included saved jobs in the deletion tests

* Correctly use pipeline in cancel method

* Unused connection

* Include dependents into dict format of job

* Add TODO

* Address comments from selwin

* Delete dependents key in redis if delete_dependents is called on its own

* Address recent comments from selwin

* Small change to trigger travis

* Remove TODO referring to canceled job state

* Remove dependent_ids from to_dict

* Address recent comments from selwin
7 years ago
Selwin Ong ca0d7ef9f1 Bump version to 0.10.0 7 years ago
Nikita Lyubchich a3eb6475dc Add description param to @job decorator (#912)
After using `@job` decorator for a function that takes a long string, in RQ worker I got printed all the args/kwargs via `job.get_call_string()`.

To get this overridden, I added `description` argument to the decorator.

I decided not to put this in `delay` method because it's may be currently be used by end user.
7 years ago
Selwin Ong 7a3c85f185
Added the ability to fetch workers by queue (#911)
* job.exc_info is now compressed.

* job.data is now stored in compressed format.

* Added worker_registration.unregister.

* Added worker_registration.get_keys().

* Modified Worker.all(), Worker.all_keys() and Worker.count() to accept "connection" and "queue" arguments.
7 years ago
John Lucas 34c403ec8d Add meta to decorator, move depends_on + at_front to decorator (#892) 7 years ago
Samuel Colvin df571e14fd improve logging in worker.py (#902)
* improve logging in worker

* tests for log_result_lifespan
7 years ago
Selwin Ong f500186f3d
Job compression (#907)
job.exc_info and job.data is now stored in compressed format in Redis.

* job.data is now stored in compressed format.
7 years ago
Selwin Ong 44a0a7b972 Bump version to 0.9.2. 7 years ago
vanife ff36e0656e Fixed an issue where `birth` not present in Redis (#901)
* Fixed an issue where `birth` not present in Redis

Fixed an issue where worker.refresh() may fail if `birth` is not present in Redis

* added test coverage
7 years ago
Selwin Ong e5de3dfbb5 Bump version to 0.9.1. 7 years ago
Selwin Ong 7b9c3b6b66 Fixed an issue where worker.refresh() may fail if last_heartbeat is not present in Redis. 7 years ago
Selwin Ong 25ced943e1 Merge branch 'master' of github.com:nvie/rq 7 years ago
Selwin Ong 1d7b5e834b
Worker statistics (#897)
* First stab at implementing worker statistics.

* Moved worker data restoration logic to worker.refresh().

* Failed and successfull job counts are now properly incremented.

* Worker now keeps track of total_working_time

* Ensure job.ended_at is set in the case of unhandled job failure.

* handle_job_failure shouldn't crash if job.started_at is not present.
7 years ago
Selwin Ong 3c98175a4a Bump version to 0.9.0 7 years ago
Theo f226d38603 Fixed #812 - Send heartbeat during suspension check 7 years ago
Selwin Ong 92c88d3f4d Merge pull request #878 from theodesp/Issue-731
Fixed #731 - Support for deleting Queues
7 years ago
Selwin Ong a4be98dc87 Merge pull request #895 from stylight/master
try latin-1 if utf-8 doesn't work, when decoding exception strings
7 years ago
ndparker 911c5e0ca3 try latin-1 if utf-8 doesn't work, when decoding exception strings 7 years ago
Dmitriy Sorokin d6e875119a Add at_front option for decorated functions 7 years ago
Theo c095fe1825 Fixed #731 - Code review issues. Added delete_jobs parameter and pipelining. 7 years ago
Selwin Ong 43c9279c8d Merge pull request #882 from jiajunhuang/specify_logging_level
expose set logging level in cmd
7 years ago
Jiajun Huang 7408c23bc5 expose set logging level in cmd 7 years ago
Samuel Colvin 260fd84f51 add milliseconds into timestamps, fix #721 7 years ago
Theo 160fe99323 Fixed #731 - Support for deleting Queues 7 years ago
Theo 096c5ad3c2 Fixed #866 - Flak8 errors 7 years ago
Samuel Colvin 423da3683c remove python 2.6 support 7 years ago
Selwin Ong cc41bdfa65 Bump version to 0.8.2. 7 years ago
Selwin Ong 801b3b7293 Added non zero check for Queue class. 7 years ago
Selwin Ong 4a9bc6e76a Merge branch 'master' of github.com:nvie/rq 8 years ago
Selwin Ong 03c3f66ca7 Bump version to 0.8.1. 8 years ago
Selwin Ong 54bc04bb45 job.save() shouldn't crash on unpickleable return value. 8 years ago
Simon Thompson fab545c193 path option needs to be a shared command to ensure that settings file can be loaded from subcommands such as requeue, resume etc otherwise sentinel config cannot be passed 8 years ago
Selwin Ong 2bc2f447d3 Merge pull request #841 from strawposter/master
accept multiple path
8 years ago
Selwin Ong 3666f4987e Merge pull request #855 from floqqi/master
Windows: Use SIGTERM instead of SIGKILL
8 years ago
Selwin Ong 5f5e113790 Merge pull request #831 from katichev/explicit_cleanup
Replace job id with job instance in the job stack. Remove implicit "cleanup" call from "job.save"
8 years ago
Selwin Ong 165b7ae6b9 Merge pull request #845 from liangsijian/master
use enum WorkerStatus instead of str
8 years ago
Florian 61f27215b3 Windows: Use SIGTERM instead of SIGKILL 8 years ago
Amjith Ramanujam 3cf5850afc Honor the job_class for failed_queue. 8 years ago
liangsijian 4556f39c34 use enum WorkerStatus instead of str 8 years ago
liangsijian 4875331b60 Optimize job.dependency
job.refresh has been call in job.fetch
8 years ago
Alexey Katichev 09697e567f revert back job.cleanup changes 8 years ago
kirill f2ff1b05f7 accept multiple path 8 years ago
Selwin Ong 8ebebc9f7c Merge pull request #833 from yaniv-g/extract_move_to_failed_queue
Expose move_to_failed_queue from Worker
8 years ago
Yaniv Greenberg 7dc5d4a936 local commit to avoid circular imports. 8 years ago
Yaniv Greenberg 2da4ccd48d Moved move_to_failed_queue to separate file. 8 years ago
Selwin Ong d71a6c2ece Merge pull request #832 from yaniv-g/master
Expand timeout string feature to both result_ttl and ttl, and add days possibility.
8 years ago
fate0 1ebf880402 fix uncaught StopRequested during send heartbeat 8 years ago
Yaniv Greenberg b49e039d63 Separate move_to_failed_queue from the worker to allow it's use in cli exception handler. 8 years ago
Yaniv Greenberg 39e43207a6 * Added support to use strings to specify both result_ttl and ttl.
* Added Days as possible timeout string (as 'd')
8 years ago
Alexey Katichev b7d50cedc4 replace job.id with job instance in local _job_stack 8 years ago
Alexey Katichev 3596449cc0 remove implicit cleanup call from job.save 8 years ago
Alexey Katichev a0113c83cf introduce job.update_meta() to store updated meta to Redis (#823)
* introduce job.update_meta() to store updated meta to Redis

This closes nvie/rq#811

* rename update_meta to save_meta
8 years ago
Selwin Ong fe84828d72 Bump up version to 0.8.0 and updated changelog. 8 years ago
Selwin Ong dc45ab8799 Worker.find_by_key should use hmget instead of repeated hget calls. (#826) 8 years ago
luojiebin cd529d0ce1 Fixed issue#72 (#818)
* Added a custom exception for timeout transfer

* Added a util to transfer timeout to a united format

* Transfer timeout format when creating a queue or enqueue jobs

* Fixed typos

* Fixed bug in transfer_timeout function

* Added test for function transfer_timeout

* Updated transfer_timeout to allow uppercase unit

* Renamed function in utils
8 years ago
Aarni Koskela 92cf6f4696 Add waitpid() return value to workhorse error/log messages (#819)
* Refactor the inner part of the monitor_work_horse loop into a separate function

* Add waitpid() return value to workhorse error/log messages
8 years ago
Peng Liu b7d4b4ec1b Solve the UnicodeDecodeError while decode literal things. (#817)
* Solve the UnicodeDecodeError while decode literal things.

* Add test case for when worker result is a unicode or str object that other than
pure ascii content.
8 years ago
Felipe Lacerda cab89254b5 Make `Queue.enqueue_job()` execute immediately if `async=False` (#798)
Currently, the job is being performed inside `enqueue_call()`, which
means that `async=False` has no effect if `enqueue_job()` is called
directly. This commit fixes that.
8 years ago
strawposter 1029adaf1b add sentinel support (#808)
* add sentinel support

* add sentinel support

* add comment
8 years ago
Peter Featherstone a99d79187b Minor spelling mistake
Minor spelling update of `proccess` to `process`
8 years ago
Selwin Ong 5660f925ae Merge pull request #788 from friedcell/master
Better support for async job payloads
8 years ago
Selwin Ong f6b4c286c9 Merge pull request #757 from jaywink/fix-unicode-decode-error
Fix UnicodeDecodeError when failing jobs
8 years ago
Selwin Ong f760fcb20f job.delete() should cleans itself from FailedQueue and various registries. 8 years ago
Samuel Colvin fd9babe8ce correct heroku worker exit logic
as per @Chronial's comment on b4b99f3
8 years ago
Marko Mrdjenovic c8a955fbb1 Merge commit '83007b20740a97f085a14d3840d1e434350c6600'
# Conflicts:
#	rq/queue.py
8 years ago
Jason Robinson 213969742e Fix UnicodeDecodeError when failing jobs
Worker handle_exception and move_to_failed_queue couldn't handle a situation where the exception raised had non-ascii characters. This caused a UnicodeDecodeError when trying to format the exception strings.

If on Python 2, ensure strings get decoded before building the exception string.

Closes #482
8 years ago
Selwin Ong 83007b2074 Merge pull request #786 from jezdez/backend-class-overrides
Allow passing backend classes from CLI and other APIs
8 years ago
Marko Mrdjenovic 35fb6b0b9a move actual execute to a separate method to make it easier to run async jobs 8 years ago
Marko Mrdjenovic 3da3eab11d moved job run to separate method to make async jobs easier 8 years ago
Benjamin Root efb30b45a3 Take a different tack, and enable the exclusion of meta from saves 8 years ago
Benjamin Root 56c89c1334 Trigger a refresh after job execution
* Prevents clobbering of user-supplied metadata
  modified during the job execution
8 years ago
Jannis Leidel c019662430
Allow passing backend classes (job, queue, worker, connection) from CLI and other APIs
This includes:

- a partial refactor of the CLI to organize the shared options
- extends the tests in areas where passing custom backend classes makes sense
- allow setting the core CLI options as env vars
- minor cosmetic changes here and there
8 years ago
Jannis Leidel 27e4f3a768
Small refactor to simplify registry key setup. 8 years ago
Selwin Ong b241d50c10 Merge pull request #774 from samuelcolvin/heroku-warm-shutdown-fix
allow for already dead horse on heroku worker termination
8 years ago
Atala 544f985d41 fix: set HTTP transport as default for sentry 8 years ago
Samuel Colvin b4b99f30b0 allow for already dead horse on heroku worker termination 8 years ago
Michael DeWulf 9e8922a099 Don't run lrem directly if we have a pipeline 8 years ago
Selwin Ong 6721463fdf queue.enqueue_call should call Job.exists with connection parameters. 8 years ago
Selwin Ong 1ae10dd529 Bump version to 0.7.1. 8 years ago
Julien Surloppe dc3bba9362 Another check on failed status and test 8 years ago
Julien Surloppe 88a3c60177 Fix get job on failed queue 8 years ago
Stefan Hammer f9bff3d12b Merge branch 'master' into 739_fix_race_condition 8 years ago
Michael DeWulf f3f61bbc15 Pass pipeline to push_job_id from enqueue_job 8 years ago
Vincent Driessen 20e258f610 Bump to 0.7.0 8 years ago
Vincent Driessen af6ce54ea4 Fix PEP8 complaints 8 years ago
Vincent Driessen 5945c28ce3 Remove legacy script 8 years ago
Stefan Hammer a0cee2d2a0 refactored worker code
Moved code into a new handle_job_success() method and reduced context of used
pipelines.
8 years ago
Samuel Colvin afc7469c27 fetch_job - check correct queue, fix #728 8 years ago
Selwin Ong e9a6c2e329 Merge pull request #747 from th3hamm0r/handle_missing_dependency
Raise an exception if a given dependency does not exist
8 years ago
Stefan Hammer 301e5c927b Raise an exception if a given dependency does not exist
Adapted some tests to the change: the dependency has to be saved first.
8 years ago
Stefan Hammer 67ae9277e5 completely pipelined enqueue_dependents 8 years ago
Stefan Hammer 7d267cf7ef implemented correct watch/multi/exec 8 years ago
任晓磊 ee4cf6e3ee fix get_redis_from_config() 8 years ago
任晓磊 83f81b351d fix default argument 8 years ago
任晓磊 191cc28543 custom connection class 8 years ago
Stefan Hammer 7b8d4e075e protecting dependency enqueuing with redis WATCH 8 years ago
Samuel Colvin bbf50f4893 use compat for PY2 test and add tests 9 years ago
Selwin Ong a0497a2bfb Merge pull request #727 from spiliopoulos/fix_failing_heroku_signal_handler
Fix request_force_stop_sigrtmin failing for python3
9 years ago
Yannis Spiliopoulos 7d0895ecf3 Small bugfix when checking python version 9 years ago
Yannis Spiliopoulos 2e30c4016b Fix request_force_stop_sigrtmin failing for python3
request_force_stop_sigrtmin would fail for python3 because it would
try to read frame attributes that have been removed in python3

This patch fixes that by reading more fram attributes only for
python2
9 years ago
Yannis Spiliopoulos 1a9b36b19e Merge remote-tracking branch 'upstream/master' into fix_issue_702 9 years ago
Yannis Spiliopoulos b38aaab8a7 Inline unhandled failure handler 9 years ago
Yannis Spiliopoulos 14d8783212 Rename function 9 years ago
Yannis Spiliopoulos 9b774771db Fix style of conditional 9 years ago
Tom Wallis 89a380ef4b Added better signal name lookup 9 years ago
Yannis Spiliopoulos 08de4190e7 Dry the code. Export handling failed current job to a method 9 years ago
Yannis Spiliopoulos c4fd1659ea Fix docstring for monitor_work_horse 9 years ago
Yannis Spiliopoulos f9d5897922 Solves issue 702
In order to solve issue 702 we have to check whether a work-horse
terminated unexpectedly (by inspecting the exit code of the work-horse
process). If it exited unexpectedly we check if the job has either been
marked as finished, failed or other valid states. If it's not in any
valid state we mark it as failed and move it to the failed queue.
Since the process was terminated unexpectedly (think OOM) we do not
have any exception context and we can't run any custom exception handlers.

There is still a chance that the job will finish successfully but the
work-horse process will be killed before the job is marked as finished
and we will erroneously mark it as failed. The users should take care
to write idempotent jobs.
9 years ago
Yannis Spiliopoulos 93d286a6c7 Split execute job to expose issue 702
In order to create a test for issue 702 we had to split execute_job
to a fork_work_horse function and a monitor_work_horse function.
9 years ago
Vincent Driessen 07adca6ca3 Bump dev version 9 years ago
Vincent Driessen 46c39654d0 Merge old tag 0.6.0 so it becomes part of master again
Otherwise, there's no linear history between this old tag and any new,
future, tags.  This is likely been a manual mistake when I released
0.6.0, so this is corrected now.
9 years ago
Samuel Colvin 7efd036a2c move ShutDownImminentException into exceptions.py 9 years ago
Samuel Colvin 0e26db9e08 correct wording in docstring and tests 9 years ago
Samuel Colvin 9f9c887645 better function names and process double SIGRTMIN 9 years ago
Samuel Colvin 2b544e5b17 add tests to HerokuWorker 9 years ago
Samuel Colvin e2f89b3171 fix for python 2.6 9 years ago
Samuel Colvin 18ba4658a4 adding heroku worker as per #584 9 years ago
Arnold Krille acbcea0c66 Add the workers connection to _connection_stack
This allows jobs to use get_current_connection() with a resolvable connection.
And then these jobs can schedule new jobs for example (my use-case). Or attach
information to their job-object.

Also pop the pushed connection after running the jobs. This is needed for some
tests that check the _connection_stack afterwards;-) And also for use-cases
where the workers are used multiple times.

fixes nvie/rq#479
9 years ago
Javier Lopez 8e24d3a92d job.py: Fix cancel failure on failed queue 9 years ago
Vincent Driessen 6a57d321f2 Ignore flake8 checks in local.py 9 years ago
Selwin Ong 7b1df1e878 Bump version to 0.6.0. 9 years ago
Selwin Ong 766bb60006 Merge branch 'dependent-jobs-with-result-ttl' 9 years ago
Selwin Ong e9d227c3df Dependent jobs are now correctly enqueued even if their parent jobs have result_ttl=0. 9 years ago
Selwin Ong 8b7b0e5584 Merge pull request #701 from jlopex/javi/fix_issue_700
Fixes issue #700
9 years ago
Javier Lopez c5e62c70bb job.py: Use fetch to get a complete Job instance 9 years ago
amyangfei 724c844378 Don't call job.cancel if job has finished 9 years ago
Javier Lopez 3668c6f5d5 worker.py: Fix default logging_level 9 years ago
Selwin Ong 94dfb943b1 Merge pull request #690 from liorsbg/master
Fix for Issue #644
9 years ago
liorsbg 4c5d04105a Fix for #644 9 years ago
Selwin Ong cd0414361c Merge pull request #687 from jlopex/javi/allow_quiet_worker_class
Allow Worker work method to specify the log verbosity
9 years ago
Javier Lopez 43cb51064a Allow Worker work method to specify the log verbosity 9 years ago
Chris Curvey 4326e19140 have worker use the passed-in connection if provided 9 years ago
zfz c2374c8035 Correct the comment of job's requeue function. 9 years ago
zfz 0492eaef01 Fix the mistypo of logger str for procline. 9 years ago
Selwin Ong 8158a180f3 Merge pull request #666 from redbaron4/python_2_6_log
Fix logging regression for Python-2.6
9 years ago
Selwin Ong af0b19e707 Merge pull request #642 from butla/master
Worker only creates log handlers if there aren't any.
9 years ago
Dheeraj 0a49e247ea Fix logging regression for Python-2.6
logger.setLevel() doesn't work when a string is passed in Python-2.6.
This patch checks if the level has been set and if not (in Python-2.6),
tries to set it again using appropriate level constants
Also unused dictConfig import is removed
9 years ago
Selwin Ong e1e4c00a67 Merge pull request #659 from javimb/javimb/decorator-ttl
Add ttl argument to decorator
9 years ago
Antoine Leclair 81679a35d9 Merge branch 'master' into custom-queue-class
Conflicts:
	tests/test_worker.py
9 years ago
VicarEscaped 01bd0cebd6 Update job status with set_status 9 years ago
Javi Imbernon 1d6c2b98b7 Add ttl argument to decorator 9 years ago
Antoine Leclair 05ed85804c Worker accepts custom queue class 9 years ago
Selwin Ong 640b2e31a0 Merge pull request #633 from olingerc/warmshutdown
Save date on which a busy worker receives a warm shutdown request
9 years ago
orangain e8165fdddf Accept byte strings as the first argument of Worker() in Python 2
This make it easy to write Python 2/3 compatible code.
e.g.

    Worker(sys.argv[1:])

    # Without from __future__ import unicode_literals
    Worker(['high', 'normal', 'low'])
9 years ago
Michal Bultrowicz fe122ac799 Worker only creates log handlers if there aren't any. 9 years ago
Eduard Carreras c27a6434a8 Set job as finished when not working in async mode 9 years ago
Nick Snell 0e532f3ec4 Correction to worker command, cast results-ttl to int 9 years ago
Christophe Olinger 2be468a404 - Rename paramter both in redis and python to shutdown_requested_date
- Use connection instead of pipeline
9 years ago
Christophe Olinger ae27ce9871 Merge branch 'master' into warmshutdown 9 years ago
Christophe Olinger 3e586bd6d6 Add remove current_job based on the correct upstream master branch 9 years ago
Christophe Olinger d622f47aff Save date in redis on which worker receives a warm shutdown request while busy 9 years ago
Selwin Ong 2485334100 Merge pull request #609 from tornstrom/master
Allow meta when enqueing
9 years ago
SkyLothar 70b5554566 make sure exc_info is text type 9 years ago
SkyLothar f9978bc27c make sure state text_type 9 years ago
Tornstrom 50a114a0a8 Allow meta when enqueing 9 years ago
Selwin Ong 45addbcaf2 Deleted job.set_started_at_now. 9 years ago
Selwin Ong 364919c7c8 Moved job.hset_value to connection._hset. 9 years ago
Selwin Ong 961e443611 Merge pull request #619 from foxx/patch-1
Fixes #613
9 years ago
Selwin Ong 5afd1a90e5 Merge pull request #589 from samuelcolvin/job-started_at
add job.started_at
9 years ago
Samuel Colvin 6fc34dc6a6 moving started_at to prepare_job_execution 9 years ago
Cal Leeming d80f9f8ba0 Fixes #613
This has been discussed in #514, #282 and #88.

Using an explicit type check via `isinstance`, rather than duck typing, is typically considered unpythonic and breaks compatibility with mock objects such as FakeRedis. This patches removes the type check, and instead looks for a common method that should be present on the object as a hint on whether it's compatible or not.
9 years ago
Selwin Ong 8bbd833855 Merge pull request #600 from glaslos/cancel_remove
Cancel and Delete differences
9 years ago
Selwin Ong 702dfd2c31 Merge pull request #611 from ahxxm/delay-task
depreciation fixes
9 years ago
Michael Keirnan 14723ecc1f Merge remote-tracking branch 'upstream/master' 9 years ago
ahxxm b06f112cb0 fix tests
syntax: assertEquals -> assertEqual, assertNotEquals -> assertNotEqual
usage: status of worker and job now will use get/set method instead of property method
9 years ago
Selwin Ong 91177b7317 Merge pull request #601 from glaslos/registry_cleanup_log_msg
log.info added when cleaning registries
9 years ago
glaslos a424d320a8 log.info added when cleaning registries 9 years ago
Karoly Frendrich ca069e5112 rqinfo config parameter 9 years ago
glaslos 0a6df13d9d delete dependents and delete in cleanup. Fixed tests. 9 years ago
glaslos d2eeb3b3db job.cancel before delete and doc string fixes 9 years ago
glaslos 02844034d7 Merge branch 'master' into cancel_remove 9 years ago
glaslos 5a3bebf85b only remove from queue on job.cancel 9 years ago
horida 04987a80da mark as busy before forking horse 9 years ago
Selwin Ong 95f740299a Merge pull request #588 from samuelcolvin/logging-extras
more info in 'Job OK' log entry
9 years ago
Samuel Colvin 082e61a212 add job.started_at 9 years ago
Samuel Colvin 30c29614c6 more info in 'Job OK' log entry 9 years ago
Samuel Colvin e750134e8a move request_(force_)stop out of _install_signal_handlers 9 years ago
Vincent Driessen ca235aee19 This is 0.5.6 9 years ago
Selwin Ong 544f2e6fb2 Fixed result logging call . 9 years ago
Selwin Ong 2140cc4fab Job result should be converted to text before being logged. 9 years ago
Selwin Ong bb4336f612 Merge pull request #578 from tbaugis/master
log job result in DEBUG level and truncate to 2k symbols
9 years ago
Toms Bauģis 5a4f297134 do not truncate result output as that can be done in the log formatter 9 years ago
Michael Keirnan da7d59e1a9 Merge remote-tracking branch 'upstream/master'
* upstream/master:
  Modified patch_connection to allow Redis connection to be easily mocked.
9 years ago
Michael Keirnan bad054989d export worker id and job id to env of work horse
For tracing job execution in a distributed system it is useful to tag log
entries with the worker id and job id. The current job is accessible
via get_current_job(), but that requires an extra redis connection. And
the current worker id (the worker id of the parent process) does not appear
to be available.

Rather than introducing an `rqworker` alternative or subclassing Worker, it
feels simple and efficient to make these contextual ids available as
environment variables. This should have no performance cost and no
API compatibility issues.

Some useful things to do with these values in the worker horse process:

+ include them in log messages
+ include them as 'x-' headers in HTTP requests made by workers
9 years ago
Selwin Ong e538512c79 Merge branch 'master' of github.com:nvie/rq
Conflicts:
	tests/test_job.py
9 years ago
Selwin Ong 0e4112da7a Modified patch_connection to allow Redis connection to be easily mocked. 9 years ago
Toms Bauģis ade154575e fix travis error - python 2.6 or whatevs wants positions spelled out for .format 9 years ago
Selwin Ong 1a089887c0 Merge pull request #564 from jlopex/javi/fix_dependent_jobs_on_different_queues
support multiple queues on dependent jobs
9 years ago
Toms Bauģis 682d4adb40 log result in DEBUG level and truncate to 2k symbols 9 years ago
Javier Lopez d3d9a20680 Do not call pipeline.execute() if pipeline is given as argument 9 years ago
Selwin Ong cf20f1d9b2 Merge pull request #576 from jlopex/ensure_custom_handlers_are_called
Ensure custom exception handlers call when Redis is down
9 years ago
Vincent Driessen 02c6df6a45 This is 0.5.5 9 years ago
Vincent Driessen c1a4780d10 Fix PEP8 complaints 9 years ago
Javier Lopez 4fb59a4ceb Ensure custom exception handlers calls when Redis is down 9 years ago
Javier Lopez 8a6bc08e47 Added pipeline named argument to enqueue_job 9 years ago
Javier Lopez b4f157516e enqueue_dependents now uses origin queue to enqueue
Current implementation is using the first job queue
to insert the dependent jobs. This makes RQ to ignore
the original queue where the jobs were enqueued.

With this change, we will use job origin attribute to
fetch the original queue, then insert the dependent
job to the fetched queue.

fixes issue #512
9 years ago
Selwin Ong e6a15c57b3 Disable click >= 5.0's unicode_literals warnings. 9 years ago
Selwin Ong f09be523dd Merge pull request #573 from jcsaaddupuy/feature/dequeue_any_not_recursive
dequeue_any not recursive
9 years ago
Jean-Christophe SAAD-DUPUY 8fbf5452fa fix: return (None, None) for dequeue_any if no result 10 years ago
Jean-Christophe SAAD-DUPUY 59d193590c fix: remove recursive call to dequeue_any 10 years ago
Damnever 43616ea696 _Colorizer().notty is more clear 10 years ago
Dustin Falgout 91a3aa7493 make args and kwargs explicit for enqueue_call function
closes #466
10 years ago
likeon fc4124e39c Fixes Job.__eq__ crash when other object doesn't have id attribute 10 years ago
Selwin Ong e6a499ada8 Merge pull request #561 from selwin/async-bug
Sync jobs should be cleaned up after execution.
10 years ago
Selwin Ong edd139d86f Sync jobs should be cleaned up after execution. 10 years ago
Selwin Ong cdcea84105 Merge pull request #557 from selwin/exception_handling
Exception handling
10 years ago
Vincent Driessen e88525a649 This is 0.5.4 10 years ago
Vincent Driessen 28a19ee717 Remove warning that's now breaking since the Raven API changed 10 years ago
Selwin Ong 3c3646cf91 Merge branch 'master' into exception_handling
Conflicts:
	tests/fixtures.py
10 years ago
Selwin Ong 8bfbeac67d Running rqworker without specifiying --exception-handler shouldn't override default behavior. 10 years ago
mozillazg 7198b4568a Fixed a format error 10 years ago
Vincent Driessen 0de225ec62 Emphasize private nature of `stopped` property 10 years ago
Vincent Driessen ec0e04727b Rename `maintenance_date` -> `last_cleaned_at` 10 years ago
Vincent Driessen 891be55b87 Clean up Worker.__init__ logic a little 10 years ago
Vincent Driessen 4d0ae5da98 Clean up type checking of Worker constructor 10 years ago
Vincent Driessen 94258761ae Make string formatting consistent 10 years ago
Selwin Ong 8f9c507f12 Bump version to 0.5.3. 10 years ago
Marcus Martins 513f6310d2 Change default TTL to None insted of -1 10 years ago
Marcus Martins 5b8726ad2d Fixes #502
Fixes some broken tests and misbehaviour with ttls. There was a temporal
coupling between saving the job and setting its expires parameter.
10 years ago
Selwin Ong f370f79819 Merge pull request #534 from selwin/registry-maintenance
Worker automatically cleans job registries every hour
10 years ago
Neal Todd bac6699ea4 Allow non-ASCII characters in keyword arguments. 10 years ago
Selwin Ong c3767e28e2 Worker now runs maintenance tasks every hour and on startup. 10 years ago
Selwin Ong 5782ac10c4 Added worker.clean_registries(). 10 years ago
Selwin Ong faf9d3e668 Added clean_registries(queue) function to clean job registries related to that queue. 10 years ago
RyanMTB 9a00b0eca6 Updated Worker API 10 years ago
Selwin Ong d51f0200d7 Merge pull request #513 from trevorprater/master
Improving logging.
10 years ago
Selwin Ong 70d5f971bd Jobs from FinishedJobRegistry that are moved to FailedQueue should have "failed" as status. 10 years ago
Cosmin Stefan 260f7caf66 Enable proper setup of signale handlers for SimpleWorker as well. fixes #523
This allows a SIGTERM to make the worker perform a warm shutdown and cleanly break out of the loop and finish the current job, if any.
10 years ago
Vincent Driessen 8f7322ed10 This is 0.5.2 10 years ago
Trevor Prater 5674edad61 Changed rqworker shutdown message.
- As requested by @nvie and @selwin.
10 years ago
Trevor Prater fd1dca40b9 Improving logging.
- Include worker key in worker startup log statement.
- Added a notification to make it more clear when a 'burst' worker dies.
10 years ago
Selwin Ong cff6fbff41 Merge pull request #477 from glaslos/ttl_tests_fixes
TTL tests and fixes
10 years ago
glaslos 071c47dacb hard-coded TTL to -1 on job.perform()
Removed merge artifacts
10 years ago
Serhii Maltsev 91f263d8e0 change try/except in python2/3 compatibility to to_text() 10 years ago
Tamir Duberstein 985a2664a4 Prevent `Queue#dequeue` from blowing the stack
In the case of many sequential jobs having been deleted, a recursive
implementation of `Queue#dequeue` is prone to blowing the stack in the
absence of tail-recursion support. Change the implementation from
recursive to iterative to work around this issue in CPython.
10 years ago
Vincent Driessen 5cb873b438 Fix PEP8 complaint. 10 years ago
Vincent Driessen cd155299a4 Fix PEP8 complaint. 10 years ago
Vincent Driessen 6c6e53542f Don't require redis-py 2.10 just for the SSL option. 10 years ago
Vincent Driessen 8505198298 Bump to 0.5.1. 10 years ago
Vincent Driessen 5990fa9d73 Merge pull request #499 from vladkens/issue/498
ZADD bugfix
10 years ago
Eric Bustarret 9fba806662 Add REDIS_SSL option
Allow the worker to connect to a Redis instance through SSL (ex: Azure
Redis Cache use SSL only by default)
10 years ago
Vlad Pronsky 933e6697cd Fixed redis drivers bug 10 years ago
glaslos 3d4d6a86d5 persist the job right before execution 10 years ago
glaslos 24d5e08992 Merge branch 'master' into ttl_tests_fixes
Conflicts:
	tests/test_job.py
10 years ago
Selwin Ong 30b21ef06e Merge pull request #465 from marklap/workerbirthdeath
add birth_date and death_date properties to Worker
10 years ago
Mark LaPerriere 636a537fa7 updates addressing @selwin comments for PR #465 10 years ago
Taras Semenenko 3dfd044767 Add missed `multi` command after `watch`
`watch` command should be used in conjunction with `multi` command
which was missed in enqueuing of job with dependencies.
Fix #487
10 years ago
Bradley Young 04e403e1a3 dread comma, I adjure thee. 10 years ago
Bradley Young d56b5424c8 merging master and fixing conflicts 10 years ago
Bradley Young c428f955e4 per @selwin, adding a deprecated handler for exc_handler 10 years ago
alternativshik 219f21b637 Allow non-ASCII characters in arguments
get_call_string() failed if any arguments contained non-ASCII strings.

Fixes #406
10 years ago
Selwin Ong 1005222371 Restored the ability to specify connection params in config 10 years ago
glaslos c155918d6d lrem only first occurrence of the job id (we expect only one) 10 years ago
Mark LaPerriere a4ca4704ac convert redis returned bytes into text/string 10 years ago
Mark LaPerriere cfe3da287a updated branch to latest 10 years ago
Vincent Driessen b8d425b318 Various PEP8 fixes. 10 years ago
Vincent Driessen fac2b10309 Auto-sort imports using isort. 10 years ago
Vincent Driessen e8c3b96a5a Bump to 0.5.0. 10 years ago
glaslos 703ab0e355 removed merged comment 10 years ago
glaslos 646f1cda22 Merge branch 'master' into ttl_tests_fixes
Conflicts:
	rq/queue.py
10 years ago
glaslos 5b5ab4860f passing on the ttl 10 years ago
Bradley Young f05d77b92b changing "default" for exception_handlers to None; same exact logic can be implemented, but cleaner 10 years ago
Bradley Young d3e4fb567b merge && updates to add multiple exception handlers. 10 years ago
Bradley Young f575137612 updating worker to have exception_handlers 10 years ago
Selwin Ong dac0be6cc7 Added DeferredJobsRegistry to keep track of deferred jobs. 10 years ago
Selwin Ong 3e674fbe6a queue.enqueue() should set job.origin. 10 years ago
Selwin Ong 9320496402 Simplify FailedQueue.quarantine and ensure that a deferred job's status is set to Queued when enqueued. 10 years ago
Selwin Ong 7fd2ac8ca6 Added "DEFERRED" Job status for jobs that have unsatisfied dependencies. 10 years ago