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
Vincent Driessen
dc5cd514ee
Explicitly cast map() result to a list, for Python 3 compat.
10 years ago
Selwin Ong
dc09676ee0
Minor copywriting fixes.
10 years ago
Selwin Ong
01ab2f20dd
Minor copywriting fixes.
10 years ago
Vincent Driessen
543bcbc60b
Explicitly cast map() result to a list, for Python 3 compat.
10 years ago
Selwin Ong
eae2c40ea0
Merge pull request #457 from jlopex/block_until_horse_finishes
...
Make parent worker process wait until horse process finishes
10 years ago
Selwin Ong
0a0a81da6d
Merge pull request #463 from conslo/skip-queue
...
Skip queue
10 years ago
Mark LaPerriere
e6c32edad9
add birth_date and death_date properties to Worker
10 years ago
Jonathan Tushman
1ae5a12a81
merging master
10 years ago
Jonathan Tushman
ccd41396f6
adding suspend with duration test
10 years ago
Travis Johnson
add4d625b6
Merge branch 'nvie' into skip-queue
...
Conflicts:
rq/queue.py
10 years ago
Vincent Driessen
cd0c3c9c1e
Merge pull request #462 from conslo/worker-hash
...
Worker hash
10 years ago
Jonathan Tushman
82333d2ad5
triggering shutdown by setting a redis flag
10 years ago
Travis Johnson
db75958ad2
use 'at_front' instead of 'skip_queue'
10 years ago
Selwin Ong
e1801c5c44
Merge pull request #453 from glaslos/job_ttl
...
TTL for jobs
10 years ago
Travis Johnson
ac61f502a1
skip_queue functionality
10 years ago
Travis Johnson
f60e4884df
a comment typo
10 years ago
Travis Johnson
0ad4cb3410
comments
10 years ago
Travis Johnson
c301369c2e
implement __eq__ and __hash__ for workers
10 years ago
Nic Cope
09cab7a90d
Allow maximum job age to be specified when cleaning up or getting expired jobs from a registry.
...
This ensures that all jobs cleaned from a started registry end up in the failed queue.
10 years ago
Javier Lopez
fc5295edfc
Set busy state on parent while waiting for horse
10 years ago
Nic Cope
6ab7070a92
Rename registry timeout to registry ttl
...
This matches job.cleanup() better and (I think) makes the purpose slightly clearer.
10 years ago
Nic Cope
9f699d758d
Any negative number should cause a job to live forever in a registry.
...
While the documentation explicitly mentions ttl=-1, this matches better the behaviour of the job.cleanup() method.
10 years ago
glaslos
c6a83eaa82
calling self.cleanup to set job expiration
10 years ago
glaslos
8a3fd91e2e
renaming job.job_ttl to job.ttl
10 years ago
Selwin Ong
2091c601b1
Merge pull request #451 from conslo/depend-on-unsaved-job-ids
...
Depend on unsaved job ids
10 years ago
Nic Cope
8fa184b86b
Ensure the FinishedJobRegistry honors an 'infinite' result_ttl of -1
10 years ago
glaslos
55c541bc59
added job ttl to queue.enqueue()
10 years ago
Travis Johnson
af4b0436c1
instantiate a job instead of fetch
...
this removes the need for the depended on job.id already being saved
10 years ago
Travis Johnson
14d1186241
use internal job_class for check
10 years ago
Bradley Young
5caccaabfe
Adding optional list handling to the exc_handler option in Worker.
...
Adding command line --exception_handler option (with multiple entries allowed) to `rq worker`
Added tests for command line options.
10 years ago
Travis Johnson
3467868f1f
allow depends_on to be a job id or a job itself
...
Other parts of the code (i.e.: the `.create()` method) allow the `depends_on` kwarg to be a `Job` object *or* a job id. This is an attempt to allow that same idea within the `.enqueue_call()` method for a queue. Since this part of the code requires actually knowing the precise redis key for the job that's depended on, my intuition is that a `.fetch()` is the only way to solve this.
10 years ago
Selwin Ong
0dbe68527c
Merge pull request #431 from negz/worker-redis-bug
...
Pass the default worker connection into the started and finished registries
10 years ago
Adam Wen
f5001a0e36
fix decode error in py3.
10 years ago
Adam Wen
1795e1ee53
fix decode
10 years ago
Adam Wen
cd0230cae3
make job description unicode friendly
10 years ago
Nic Cope
de0b501823
Pass the default worker connection into the started and finished registries
...
In practice all the registry methods are called with pipelines, but if no
connection is passed in when instantiating the registry and the connection
stack is empty resolve_connection will raise NoRedisConnectionException.
10 years ago
zhangliyong
6621105bde
Use type instead of default to specify interval option type
10 years ago
zhangliyong
3d49784bcc
Merge branch 'master' of github.com:nvie/rq into cli-rq-worker
10 years ago
Selwin Ong
2307bc8253
Added FinishedJobRegistry to monitor finished jobs.
10 years ago
Selwin Ong
74a9982ecb
Fixed a bug where expired jobs aren't deleted from JobStartedRegistry.
10 years ago
Selwin Ong
18c6ea64ef
Merge pull request #419 from selwin/registry-len
...
Added JobStartedRegistry.count
10 years ago
zhangliyong
f9511664c8
Make flake8 happy :)
10 years ago
zhangliyong
1b39996bf7
Make pep8
10 years ago
zhangliyong
c6033b312e
Cleanup
10 years ago
zhangliyong
6510bb46f3
Fix interval type bug, it should be float
10 years ago
zhangliyong
21c14c0e21
Cleanup
10 years ago
zhangliyong
4d91f136f8
Move redis url default value to connect function
...
So worker subcommand can retrieve redis url from config file if url
option value is None, otherwise url option value will never be None.
10 years ago
zhangliyong
4df076f3aa
Retrieve url from config file
10 years ago
zhangliyong
229a00fee5
Cleanup
10 years ago
zhangliyong
88fe5124d8
Make pythonic
10 years ago
zhangliyong
907e71dc86
Make pythonic
10 years ago
zhangliyong
f10c749b7c
Use click's evvar to retrieve SENTRY_DSN environment value
10 years ago
zhangliyong
842f27294a
Convert rqworker to 'rq worker' subcommand
10 years ago
zhangliyong
7b434a32eb
Let cleanup_ghosts accept conn argument
10 years ago
Selwin Ong
202be75b21
Merge pull request #415 from foxx/feature/custom-job-ids
...
Allow job ID to be set on enqueue/enqueue_call() - fixes #412
10 years ago
Selwin Ong
c1dc30eae3
Added __len__ method to Queue.
10 years ago
Selwin Ong
fae7df5aa7
Renamed StartedJobRegistry.get_job_count to StartedJobRegistry.count for consistency.
10 years ago
Selwin Ong
41ae1ce8a7
Added a registry.get_job_count().
10 years ago
foxx
30ea76ddd6
Fixed silly typo
10 years ago
foxx
0466562a13
Fixes from comments in #415
...
Added tox/vagrant tmp dir to gitignore
Removed unused import
Renamed id to job_id in enqueue_call() as per comments in #415
10 years ago
Vincent Driessen
783b6f9ec7
Fix PEP8 complaint.
10 years ago
Vincent Driessen
7686785d61
Merge branch 'selwin-working-queue'
...
Conflicts:
tests/test_worker.py
10 years ago
Vincent Driessen
4b7c59d68d
Fix PEP8 complaints.
10 years ago
Selwin Ong
6d79082b62
Call move_expired_jobs_to_failed_queue before returning job_ids.
10 years ago
Selwin Ong
9341a4a33d
Renamed WorkingQueue to StartedJobRegistry.
10 years ago
Selwin Ong
2e96148b31
Fixed Python 3 tests for "WorkingQueue".
10 years ago
Selwin Ong
60c7a3cc6e
working_queue.remove call should be pipelined.
10 years ago
Selwin Ong
4d90cc062e
Add job to WorkingQueue before execution and remove from WorkingQueue after.
10 years ago
Selwin Ong
b0c0a84ab0
Moved some logic into worker.prepare_job_execution to make things testable.
10 years ago
Selwin Ong
a28575088b
Implemented WorkingQueue.cleanup().
10 years ago
Selwin Ong
3dc008d090
Added WorkingQueue class.
10 years ago
foxx
b6499ce71c
Fixed another py3 bug - my bad. Also moved type checking further down
10 years ago
foxx
f5779c194f
Renamed job_id to id, and fixed py3 bug, per #415
10 years ago
Vincent Driessen
9ab46804c6
Merge pull request #417 from foxx/feature/testworker
...
Added test worker for unit tests - fixes #413
10 years ago
foxx
52c3ad0fbf
Renamed to SimpleWorker
10 years ago
foxx
16ee71f26d
Use class for test worker, and performs PID check in unit tests, #412
10 years ago
Vincent Driessen
b5fbc3992b
Restructure new CLI modules.
...
A few things have changed. First of all, there is no separate copy of
the argparse-based `rqinfo` anymore. It now fully utilizes the new
Click subcommand. In other words: `rqinfo` and `rq info` both invoke
the same function under the hood.
In order to support this, the main command group now does NOT take
a `url` option and initializes the connection. Besides supporting this
alias pattern, this change was useful for two more reasons: (1) it
allows us to add subcommands that don't need the Redis server running in
the future, and (2) it makes the `--url` option an option underneath
each subcommand. This avoids command invocations that look like this:
$ rq --url <url> info --more --flags
And instead allows us to pass the URL to each subcommand where it's
deemed necessary:
$ rq info --url <url> --more --flags
Which is much friendlier to use/remember.
10 years ago
Vincent Driessen
652cd71d2b
Merge branch 'zhangliyong-cli-rq'
10 years ago
Vincent Driessen
5c96c61255
Change `rq requeue` subtly, mostly docs and vars.
10 years ago
Vincent Driessen
07dda74710
Change options of the `rq empty` command.
...
* Does not ask confirmation
* Does not need `--yes` option anymore
* Added --all, to clear all queues
* No implicit emptying of the failed queue. If you want to empty the
failed queue, just use `$ rq empty failed`
10 years ago
Vincent Driessen
8f1e066f15
Various little style fixes.
10 years ago
Vincent Driessen
fc803f5d0d
Fix various flake8 complaints.
10 years ago
foxx
2753f17e8e
Fixed bug with format() in py3
10 years ago
foxx
72bc9e37b7
Forced job_id to only allow str/unicode
10 years ago
foxx
6bb8b26114
Allow job ID to be set on enqueue/enqueue_call() - fixes #412
10 years ago
Selwin Ong
21620e98ca
Merge pull request #411 from selwin/fix-exception-handler
...
Don't pass "args" into logging call
10 years ago
zhangliyong
3eabe76690
Move back rqinfo command for backward compatibility
10 years ago
zhangliyong
4248c934ab
Remove unused function 'gettersize'
10 years ago
Selwin Ong
7cf8ef42d1
Don't pass "args" into logging call.
10 years ago
zhangliyong
ae1681e7a0
Change doc of rq cli
10 years ago
zhangliyong
de471b70b6
Merge branch 'master' of github.com:nvie/rq into cli-rq
10 years ago
zhangliyong
f734708ad4
Make pythonic
10 years ago
zhangliyong
5670f251d8
Add '--all' option and [JOB_IDS] argument to specify what to requeue
10 years ago
Dave Bonner
6eea986012
allow queue class to be overriden from command line
...
use the same mechanism as the override for worker class.
10 years ago
zhangliyong
37748e5ace
Make pep8
10 years ago
zhangliyong
1c97a55064
compat str.format syntax with py26
10 years ago
zhangliyong
0c4e28bd62
Use 'with Connection' instead of 'use_connection'
10 years ago
zhangliyong
1e5a8b58a1
Use -y option to confirm emptying failed queue by default
10 years ago
zhangliyong
c90da5336e
Avoid using use_connection, initial queues directly using redis connection
10 years ago
zhangliyong
adc24b6fe0
Fix import error
10 years ago
zhangliyong
551483b477
Add rq info command
10 years ago
zhangliyong
81febc6dc5
Format empty help message
11 years ago
zhangliyong
f845ae25a2
Make command empty help message friendly
11 years ago
zhangliyong
36880db872
Show progressbar when requeuing
11 years ago
zhangliyong
e1d236ec02
Use click.echo instead of print to output
11 years ago
zhangliyong
7f3cb8e785
Merge branch 'master' into cli-rq
11 years ago
zhangliyong
07aea5e5c1
Add CLI `rq` to empty queues and requeue failed jobs
11 years ago
INADA Naoki
4fb2914c6f
Easy refactoring on decorators.py
11 years ago
Selwin Ong
b05c2052e1
Capture more data when logging errors.
11 years ago
Vincent Driessen
3de8a47f06
Merge pull request #390 from selwin/pipeline-dependency-registration
...
job.register_dependency() should support pipelining
11 years ago
Selwin Ong
fc19a64670
job.register_dependency() should support pipelining.
11 years ago
Vincent Driessen
b91b89a183
Use highest pickle protocol version to serialize job data.
11 years ago
Vincent Driessen
79db282879
Support enqueueing callable classes.
...
Fixes #388 .
11 years ago
Vincent Driessen
865efd6e8c
Leave setting the state to the worker, not the Job itself.
...
Should fix #389 .
11 years ago
Vincent Driessen
eb6fb27281
Change confusing method name.
11 years ago
Vincent Driessen
6299af15fc
Merge branch 'master' of github.com:nvie/rq
11 years ago
Vincent Driessen
d37f49f643
Merge branch 'andrewsg-warnings'
11 years ago
Vincent Driessen
12932a433b
Merge pull request #382 from selwin/cancel-should-remove-from-queue
...
job.cancel() should remove itself from queue
11 years ago
Selwin Ong
2ab7276230
Merge pull request #377 from selwin/logging-fix
...
Only add logging handler if nothing is configured
11 years ago
Selwin Ong
638211df20
job.cancel() should remove itself from queue.
11 years ago
Selwin Ong
b828078dde
Fixed default logging level in setup_loghandlers.
11 years ago
Selwin Ong
92fb787a69
Only add logging handler if nothing is configured.
11 years ago
Scott Vitale
b464c37468
Use as_text to fix syntax error discovered in Python 3.2 (raspberry pi)
11 years ago
David Bonner
e2f398be80
fix --worker-ttl command line arg
...
Make sure it's converted to an int, since the rest of the code expects it to be. Without this patch, trying to use that argument gets you something like this:
(cogo)[dbonner@bonnervm18 syseng]$ rqworker --worker-ttl 86400
21:52:07 RQ worker started, version 0.4.6
Traceback (most recent call last):
File "/opt/cogo/bin/rqworker", line 9, in <module>
load_entry_point('rq==0.4.6', 'console_scripts', 'rqworker')()
File "/home/dbonner/src/github/rq/rq/scripts/rqworker.py", line 102, in main
w.work(burst=args.burst)
File "/home/dbonner/src/github/rq/rq/worker.py", line 354, in work
timeout = None if burst else max(1, self.default_worker_ttl - 60)
TypeError: unsupported operand type(s) for -: 'str' and 'int'
11 years ago
Selwin Ong
8095a565ac
rqworker script should accept "--job-class" parameter.
11 years ago
Selwin Ong
7ac1c3500a
Worker.__init__ should accept custom job class.
11 years ago
Selwin Ong
141278bb42
Queue.__init__ supports job_class argument.
11 years ago
Andrew Gorcester
17a4ed056d
use warnings.warn() instead of raise for DeprecationWarning
11 years ago
Vincent Driessen
6644872273
Raise warning when using async Sentry transport.
11 years ago
Vincent Driessen
2314b62d8c
Start release 0.4.6.
11 years ago
Vincent Driessen
f0e02996bc
Use single quotes for string literals.
11 years ago
Vincent Driessen
0fbc9e4851
Release 0.4.5.
11 years ago
Marko Mrdjenovic
78b8d2a6ef
kwargs must be strings, unicode fails with "keywords must be strings"
11 years ago
Vincent Driessen
972b367af4
Release 0.4.4.
11 years ago
Vincent Driessen
83382f51d0
PEP8ify.
11 years ago
Vincent Driessen
c263f8f600
Fix regression introduced in 0.4.3.
11 years ago
Vincent Driessen
c0567be69a
Release 0.4.3.
11 years ago
Vincent Driessen
fba11aac91
Merge branch 'SanyerMyasoedov-master'
11 years ago
Vincent Driessen
c5939479b5
Merge remote-tracking branch 'origin/master' into SanyerMyasoedov-master
...
Conflicts:
rq/decorators.py
tests/__init__.py
tests/test_decorator.py
11 years ago
Vincent Driessen
b048e23875
Merge pull request #342 from friedcell/master
...
make job class dynamic
11 years ago
Vincent Driessen
ab9e6b852e
Fix PEP8 complaints.
11 years ago
Vincent Driessen
38ec259b6e
Enable the most modern Python syntax.
11 years ago
Vincent Driessen
4746602c57
Explicit string check in Job constructor.
11 years ago
Vincent Driessen
9def988a85
Flip conditional sides of helper definitions (no semantic change).
11 years ago
Marko Mrdjenovic
5cba260cca
Job and Queue classes as variables (compatible with existing naming)
11 years ago
msoedov
e76020d894
Removed @resolve_connection from job decorator.
...
-- resolve_connection already presence inside Queue __init__.
11 years ago
msoedov
b4bccb2d31
Moved @resolve_connection call into @delay wrapper
11 years ago
Marko Mrdjenovic
67dd1cbf34
make job class dynamic for more hackability
11 years ago
Vincent Driessen
ef9456ddbd
Bump version to 0.4.2.
11 years ago
Vincent Driessen
5fe82bd543
Merge pull request #341 from SanyerMyasoedov/master
...
Added depends_on to job decorator
11 years ago
msoedov
46c96f9481
Added depends_on to job decorator
11 years ago
Vincent Driessen
415662d42c
Bump version.
11 years ago
Vincent Driessen
e60584ef76
Use single quotes for string literals.
11 years ago
Vincent Driessen
dfd23d6fb8
Fix bug where RQ 0.4 could not unpickle jobs from RQ 0.3.x.
11 years ago
Vincent Driessen
39258e2c15
Release 0.4.0.
11 years ago
Vincent Driessen
aef7af9c77
Merge pull request #334 from nvie/emptying-failed-queue
...
Emptying failed queue
11 years ago
Vincent Driessen
7ea106e50e
Merge pull request #333 from selwin/explicit-args
...
Rearranged how explicit kwargs are passed into queue.enqueue(). Fixes #322
11 years ago
Vincent Driessen
cb34acc279
Add rqinfo -X command.
...
This can be used to empty the failed queue right from the command line.
11 years ago
Vincent Driessen
4d9c20d5d9
Reimplement Queue.empty() in a Lua script.
...
This makes the .empty() function perform all the computing in Redis
itself, rather than in Python. This is both atomic, and faster.
11 years ago
Vincent Driessen
057c4657ef
Fix whitespace.
11 years ago
Vincent Driessen
fdf4abcf69
Fix pipeline call.
11 years ago
Selwin Ong
4f918041e3
Rearranged how explicit kwargs are passed into queue.enqueue(). Fixes #322
11 years ago
Tomas Hanacek
6494233058
rqworker default arguments of socket, worker_ttl, results_ttl bugfix
11 years ago
Vincent Driessen
35d839f4e2
Merge pull request #330 from selwin/death-penalty
...
Job timeouts are now handled by "worker.death_penalty_class"
11 years ago
Vincent Driessen
3649ff863b
Don't rely on external package `first`.
11 years ago
Selwin Ong
7eb6c2ab9f
Job timeouts are now handled by "worker.death_penalty_class".
11 years ago
Vincent Driessen
a55be12864
Merge branch 'malthe-default-to-environment-args'
11 years ago
Vincent Driessen
3667e37ed3
Don't expose the envvar values through `rqinfo -h`.
11 years ago
Vincent Driessen
1ada3462dd
Merge pull request #329 from olingerc/workonrqinfo
...
Use get_state() instead of .state in rqinfo
11 years ago
Christophe Olinger
e16b89de3b
Use get_state() instead of .state in rqinfo
11 years ago
Malthe Borch
e77b3e8a21
Pull argument parser defaults from environment variables.
11 years ago
Selwin Ong
835c353380
Job status should be updated during job.perform().
11 years ago
Selwin Ong
57990fa052
Simplify worker.work() by moving some functionalities to relevant methods.
11 years ago
Selwin Ong
f5c3c9a6dd
Deprecate job.status.
11 years ago
Selwin Ong
72457d2286
Added DeprecationWarning to worker.state.
11 years ago
Selwin Ong
2fe5d9e25e
Python 3 compatibility with worker.get_current_job().
11 years ago
Selwin Ong
802ecb5ccb
Renamed worker.set_job_id() and worker.get_job_id() for consistency.
11 years ago
Selwin Ong
93bb9ec5f4
Added tests for worker.get_current_job().
11 years ago
Selwin Ong
1b3832adb5
Merge branch 'master' of https://github.com/mbr/rq into worker-get_job_id
...
Conflicts:
rq/worker.py
11 years ago
Selwin Ong
37376cfe42
Deprecate worker.state.
11 years ago
Vincent Driessen
383ffa464f
Merge branch 'rdooley-master'
11 years ago
Vincent Driessen
d2bbd31c59
Fix some flake8 complaints.
11 years ago
Vincent Driessen
f7e2375b36
Remove two-char short args.
...
In UNIX, this would mean the shorthand notation for `-w -t`, which is
confusing and conflicts with the existing `-w` and `-t` flags. Instead,
if you need this, you'll have to spell the flag name out because we've
run out of chars that make sense.
11 years ago
Vincent Driessen
c7498b2066
Merge pull request #312 from selwin/rename-fork_and_perform
...
Renamed Worker.fork_and_perform_job to Worker.execute_job.
11 years ago
Malthe Borch
ad529e2609
Add repr for (showing id and enqueue time).
11 years ago
Selwin Ong
2044e790f5
Renamed Worker.fork_and_perform_job to Worker.execute_job.
11 years ago
Rees Dooley
fb65e321ed
Changed timeout to results_ttl. Added similar worker_ttl param
11 years ago
Rees Dooley
f8e775a784
Results timeout arg added to rqworker
11 years ago
Marc Brinkmann
e81ee5b672
Update worker.py
...
Use docstring instead of comment. Sorry.
11 years ago
Vincent Driessen
9ad7da684c
Merge branch 'KanbanSolutions-use-pipeline-context'
11 years ago
Vincent Driessen
d0381e98ee
Fix .pipeline -> ._pipeline.
...
This makes sure it's compatible with both Redis and StrictRedis back
ends.
11 years ago
Sylvain Zimmer
f0a3dd262e
Added connection argument to get_current_job()
11 years ago
Dj Gilcrease
fd036538f7
Wrap the perform_job try/except in a pipeline context so the pipeline connection is properly refrshed after the work is done
11 years ago
Vincent Driessen
44233709ed
Allow two-way setting of job data properties.
...
As a side-effect, this also enables us to lazily load the data.
11 years ago
Vincent Driessen
66a554bc29
Change AssertionError to proper TypeError.
11 years ago
Malthe Borch
ce3924c901
Just use a regular private method along with 'property'.
11 years ago
Malthe Borch
c898fe618e
Move seemingly general purpose decorator into class scope, use and delete.
...
Also, reduce repeat attribute declarations, at the cost of a
requirement that decorated functions appear in the right order.
11 years ago
Malthe Borch
ba0b39a43b
Unpickle job data lazily. This fixes issue #294 .
11 years ago
Vincent Driessen
888d771d4d
Merge pull request #287 from malthe/shed-times-dependency
...
Remove dependency on 'times' library (issue #286 ).
11 years ago
Selwin Ong
c02bf3d6aa
Merge pull request #289 from acmerfight/master
...
delte Unused variable 'prefix'
11 years ago
Vincent Driessen
e1e2405150
Merge branch 'hotfix-0.3.13'
...
Conflicts:
CHANGES.md
11 years ago
Vincent Driessen
aa55232151
Bump version to 0.3.13.
11 years ago
Vincent Driessen
b52089ede1
Fix NameError.
...
This was the result of a faulty merge. I'm sorry.
11 years ago
Vincent Driessen
cf98591ca5
Merge branch 'hotfix-0.3.12'
...
Conflicts:
CHANGES.md
rq/worker.py
11 years ago
Vincent Driessen
b5e1377023
Bump version to 0.3.12.
...
Conflicts:
CHANGES.md
11 years ago
Vincent Driessen
d0fa35dc66
Python 2.6 fix.
11 years ago
Vincent Driessen
8414a67d65
Fix bug where worker died from monitoring views.
...
Fixes #288 .
Conflicts:
rq/worker.py
11 years ago
Andy Yao
31830120f8
delte Unused variable 'prefix'
11 years ago
Malthe Borch
c5a381fbe9
Remove dependency on 'times' library (see issue #286 ).
...
Basically, for the functionality needed, a dependency on 'times' (which
in turn depends on 'python-dateutil') seem unnecessary.
11 years ago
Vincent Driessen
9abbfc4dfb
Use kwarg to specify connection.
11 years ago
Malthe Borch
1792a194bd
Should pass a connection here because we might not be using a connection stack.
11 years ago
Joshua Chia
ef2bbe762b
Minor cleanup: Use Status enums instead of strings
11 years ago
reterVision
c27cb5217c
Remove duplicate function call.
11 years ago
Marc Brinkmann
3d0138d319
Added Worker.get_current_job() convenience method.
11 years ago
Marc Brinkmann
c745f6811a
Added job_id property, storing the id of the currently executing job.
11 years ago
Marc Brinkmann
606d4fa10f
Add optional pipeline parameter to set_state.
11 years ago
Selwin Ong
e4589a4641
job.cancel() should be pipelined.
11 years ago
reterVision
b79fac8840
Fix typo in Doc string.
11 years ago
Vincent Driessen
af87cce382
Merge branch 'selwin-custom-worker'
11 years ago
Vincent Driessen
3546aae0c0
Let's keep things readable.
11 years ago
Selwin Ong
28dcb5dcd1
Renamed "--worker" flag to "--worker-class".
11 years ago
Selwin Ong
4ff038481f
First stab at allowing user to specify a custom worker class.
11 years ago
Selwin Ong
8aa5771646
job.cancel() now deletes dependents_key
11 years ago
Vincent Driessen
7fdd115e28
Merge branch 'jchia-master'
...
Conflicts:
rq/job.py
rq/queue.py
11 years ago
Vincent Driessen
bb3dc5b0b2
Terminology change: waitlist -> dependents.
11 years ago
Joshua Chia
b89d6c8990
Set timeout at Job creation instead of during enqueueing; made Queue.enqueue_call respect `timeout` when `after` is specified
11 years ago
Selwin Ong
15c4b562ba
Reverse dependency mapping should be a set instead of a list.
11 years ago
Selwin Ong
93e5e552b7
Replaced "after" kwarg with "depends_on".
11 years ago
Mark Tozzi
5f6a1f0ac5
Empty the queue before deleteing the jobs, in case new jobs arrive
11 years ago
Mark Tozzi
0713ad03c2
Empty now deletes all jobs in the queue
11 years ago
Vincent Driessen
4dbbfc1d8f
Merge pull request #252 from nvie/use-utc
...
Store birth and death values as UTC dates
11 years ago
Rob Harrigan
02c5d902ec
Merge remote-tracking branch 'upstream/master'
...
Conflicts:
tests/test_queue.py
11 years ago
Rob Harrigan
5e4d5f642e
Only save queue to set on enqueue.
...
Validate queue key still exists when all() is called
11 years ago
Selwin Ong
fd44ad39d4
Python 3 fixes for job dependency stuff.
11 years ago
Selwin Ong
fcfe55fe13
Merge branch 'master' into job_dependency
...
Conflicts:
rq/job.py
rq/queue.py
11 years ago
Vincent Driessen
aefa44b30c
Store birth and death values as UTC dates.
11 years ago
Vincent Driessen
d037696fc5
Merge branch 'asldevi-master'
11 years ago
Vincent Driessen
eb5bb6329c
PEP8ify.
11 years ago
Vincent Driessen
524fe15839
Merge branch 'pricingassistant-master'
11 years ago
Vincent Driessen
4d92079694
PEP8ify.
11 years ago
Vincent Driessen
537476b488
PEP8ify.
11 years ago
Vincent Driessen
1b558704d3
Fix: COMPACT_QUEUE should be a unique key.
...
This fixes #230 . Thanks, @sylvinus.
11 years ago
Sylvain Zimmer
a296619074
Split Job.dump() and Job.save()
11 years ago
Rob Harrigan
c08b96e027
Use a redis set to store queue names, instead of relying on the redis "keys" method,
...
which does not perform well on large databases.
11 years ago
Vincent Driessen
135b1ff10c
Merge branch 'igungor-job-description'
11 years ago
Vincent Driessen
90fcb6c9d0
PEP8ify.
11 years ago
Vincent Driessen
57ea6203d1
Let's not change positional argument order.
...
This may break other people's programs.
11 years ago
Vincent Driessen
5d0f91e542
Release 0.3.11.
12 years ago
Vincent Driessen
536e8a89cf
Fixes for Python 3.
12 years ago
H. İbrahim Güngör
10bda9684d
Pass description parameter to job constructor in order to distinguish job names in queue.jobs or in rq-dashboard. Add related test case.
12 years ago
Vincent Driessen
49c7cf0af7
Release 0.3.10.
12 years ago
Vincent Driessen
004cf44af6
Bump version to 0.3.9.
12 years ago
Alex Morega
328e7611d3
use utf-8 instead of ascii
12 years ago
Alex Morega
5b630b1e22
port rqinfo to py3
12 years ago
Alex Morega
8d61d3bf26
port string handling to py3
...
Redis uses byte values for everything. We save queue names and job
IDs as unicode. So we need to convert every time we get data from redis.
12 years ago
Alex Morega
6eeee85cc3
remove backwards compat for custom properties
12 years ago
Alex Morega
a3b5ce5e46
accomodate py3 imports and builtins
12 years ago
Alex Morega
a75ea0d693
changes by python-modernize
12 years ago
Selwin Ong
0198916856
Fixes an issue where register_sentry breaks when logging jobs with
...
unimportable function.
12 years ago
Vincent Driessen
2e9fa1d0a7
Release 0.3.8.
12 years ago
Vincent Driessen
83496fef32
Merge pull request #214 from Plexical/write-pid-file
...
Writes an optional specified PID file on startup
12 years ago
Devi
c4e7c17994
deprecate use of host/db/port options for Redis
12 years ago
Devi
dd34f1ffd9
Merge remote branch 'original/master'
12 years ago
Jacob Oscarson
5505291818
Polished help message for PID file specification
12 years ago
Jacob Oscarson
995554cdd2
Removed alternative parameters for PID file creation
12 years ago
Onilton Maciel
3afc32f08a
End calculation in get_jobs_ids in fixed. Length is respected
12 years ago
Onilton Maciel
97de8ea3cc
Fixed typos and errors found. Tests passing now
12 years ago
oniltonmaciel
5cfbae61a9
Replaced limit by length and start by offset
...
Replaced limit by length and start by offset to remove a possible ambiguity
12 years ago
Justin Unwin
af04545bbf
Ok i am being lazy using the try catch
12 years ago
Justin Unwin
17be896744
Fix a problem caused when a nonstandard stdout is defined and not
...
properly implemented
12 years ago
Devi
a0d46c93f3
take REDIS_URL from settings if exists
12 years ago
Jacob Oscarson
72d219a24c
Writes an optional specified PID file on startup
12 years ago
Selwin Ong
6ee45597ca
Don't fail if job dependency is modified during enqueue process.
12 years ago
Selwin Ong
e7e8579888
Merge branch 'master' of git://github.com/nvie/rq into job_dependency
...
Conflicts:
rq/queue.py
12 years ago
Selwin Ong
2e826e2b1f
Internally renamed the term "parent" to "dependency".
12 years ago
Selwin Ong
0dfb041383
Simplify enqueue_waitlist by using lpop.
12 years ago
Selwin Ong
18ff57ef35
Avoid race conditions when enqueueing job with dependency.
12 years ago
Vincent Driessen
73b7453e40
Fix typo.
12 years ago
Vincent Driessen
2fb6e5ca1a
Minor refactoring of the paging logic.
12 years ago
Alex Morega
e3075ea6be
get a page of jobs
12 years ago
Alex Morega
ef0f04bff6
extract `safe_fetch_job` method
12 years ago
Vincent Driessen
0f804e07ae
Merge pull request #198 from johannth/scripts-respect-url
...
Made rqworker and rqinfo respect db parameters from --url
12 years ago
Selwin Ong
6550f86646
Don't enqueue waitlisted jobs on failed execution.
12 years ago
Selwin Ong
eadc7db29f
First stab at writing implementing job dependency.
12 years ago
Jóhann Þorvaldur Bergþórsson
7660fbdc18
Made rqworker and rqinfo respect db parameters from --url
...
When starting the rqworker and rqinfo scripts with an --url parameter containing a non default database, e.g. redis://localhost:6379/2, both scripts connected db 0 instead of the desired database. Fixed this behavior by ignoring the --host, --port and --db arguments if --url is there.
Also fixed another issue with the rqinfo script, in which it defaulted to only the 'default' queue instead of finding all available queues using Queue.all().
12 years ago
Selwin Ong
a0c9267550
Job.create should also accept arguments in list format.
12 years ago
Vincent Driessen
067a1760ed
Merge branch 'Plexical-config-socket'
12 years ago
Bruno Renié
7a8fe6be30
Ability to get SENTRY_DSN from the environment variables
12 years ago
Jacob Oscarson
11b2cf2bd5
Perform actual connection (+ increase test coverage)
12 years ago
Jacob Oscarson
ef43790ba2
Better placing + testability of socket as a cli parameter
12 years ago
Jacob Oscarson
02288dd048
Optionally configure connection as path to Unix socket (tbd: actual connection)
12 years ago
Vincent Driessen
5a5e14cc70
Merge branch 'hotfix/0.3.7'
...
Conflicts:
CHANGES.md
rq/version.py
12 years ago
Vincent Driessen
93ba0b4d6e
Bump version to 0.3.7.
12 years ago
Vincent Driessen
66741fff7b
Fix bug where workers would not execute builtin functions properly.
12 years ago
Vincent Driessen
9633d36e85
Merge branch 'selwin-master'
12 years ago
Vincent Driessen
5289647970
Remove unused import.
12 years ago
Selwin Ong
85e9014296
Moved some logic from worker.perform_job() to job.cleanup().
12 years ago
Vincent Driessen
6485fe094d
Prepare for next 0.3.x version.
12 years ago
Vincent Driessen
d5f1740c3d
Bump version to 0.3.6.
12 years ago
Vincent Driessen
a04169e561
Allow rqworker to run more silently.
12 years ago
Selwin Ong
c987569650
Safe fetching a deleted job removes the deleted job from queue.
12 years ago
Vincent Driessen
501a3870e1
Ignore a job when there isn't a "data" key available.
12 years ago
Vincent Driessen
223e09f4fe
Add rq.contrib.legacy.cleanup_ghosts() function, to clean up old mess.
12 years ago
Vincent Driessen
d39badb4cc
Prevent the use of indefinite timeouts.
...
Using them would really mess with the new expiring worker keys (they
would disappear, even though the workers aren't dead).
12 years ago
Vincent Driessen
e0866cdc6c
Log the act of sending a heartbeat (DEBUG level).
12 years ago
Vincent Driessen
e4d37332f0
Fix typos.
12 years ago
Vincent Driessen
e8c1885eda
Avoid negative timeouts when default_worker_ttl is < 60.
12 years ago
Vincent Driessen
640195d5e4
Merge branch 'master' into yaniv-aknin-worker_ttl
12 years ago
Vincent Driessen
a7f927f845
Fix non-relative import.
12 years ago
Vincent Driessen
192770773a
Remove unused import.
12 years ago
Vincent Driessen
c0a594d47a
Merge pull request #177 from selwin/master
...
FailedQueue.requeue should set job status back to Queued
12 years ago
Selwin Ong
e5fa82aa5d
Merge branch 'master' of github.com:selwin/rq
12 years ago
Selwin Ong
05d744c9af
Requeuing a job should set its status back to Queued.
12 years ago
Vincent Driessen
4688498e2d
Attach job ID when unpickling fails in .dequeue().
...
This makes the behaviour consistent with .dequeue_any().
12 years ago
Vincent Driessen
83525c42c7
Prevent against 'created_at' field being None.
12 years ago
Vincent Driessen
7d37c257ae
Prepare for 0.3.6.
12 years ago
Vincent Driessen
c427eda36c
Bump version to 0.3.5.
12 years ago
Vincent Driessen
54254f2271
Patch the connection instances.
...
This patches the connection object (which is either a StrictRedis
instance or a Redis instance), to have alternative class methods that
behave exactly like their StrictRedis counterparts, no matter whether
which type the object is. Only the ambiguous methods are patched. The
exhaustive list:
- _zadd (fixes argument order)
- _lrem (fixes argument order)
- _setex (fixes argument order)
- _pipeline (always returns a StrictPipeline)
- _ttl (fixes return value)
- _pttl (fixes return value)
This makes it possible to call the methods reliably without polluting
the RQ code any further.
12 years ago
Vincent Driessen
67880343f1
Make inner_exception optional, and use new except syntax.
12 years ago
Idan Kamara
2baa2e370f
job: save the real exception when unpickling fails
...
We raise our own exception which hides the real error (often an ImportError),
making it difficult to see what happend. Instead, save the original exception
too.
12 years ago
Yaniv Aknin
4925b09aa5
Set worker ttl and maintain it when idle/taking/finishing jobs
...
This change could use far better test coverage, but I'm not sure how to
test it without refactoring more of the code than I think is reasonable
in the scope of this work.
12 years ago
Yaniv Aknin
74c2351232
Refactor dequeue_any to accept arbitrary timeouts
...
The 'blocking' parameter was replaced with a 'timeout' parameter.
The timeout parameter is interpreted thus:
0 - no timeout (block forever, equivalent to blocking=True)
None - non-blocking (return value or None immediately, equivalent to
blocking=False)
<integer> - maximum seconds to block
Upon timing out, a dequeue operation will raise DequeueTimeout.
12 years ago
Vincent Driessen
743cf3cd74
Merge branch 'vierja-ended_time'
12 years ago
Vincent Driessen
20d435a077
Prepare for 0.3.5.
12 years ago
Vincent Driessen
f818fb5d43
Bump version to 0.3.4.
12 years ago
Vincent Driessen
e1b81b1669
Avoid new-style classes under Python 2.6.
...
Little ugly fix, required because Python 2.6's logging uses old-style
classes. Thanks for finding this one, @deferraz.
12 years ago
Vincent Driessen
77fb32791d
Include a copy of dictConfig in RQ, for Python 2.6 compat.
12 years ago
Vincent Driessen
e29981a008
Bump to new development version.
12 years ago
Vincent Driessen
55bb32cb36
Release 0.3.3.
12 years ago
Vincent Driessen
d1c2b3b78d
Merge branch 'selwin-remove-logbook'
...
Conflicts:
rq/utils.py
rq/worker.py
setup.cfg
setup.py
12 years ago
Vincent Driessen
37b3bb4bd4
Have Worker.work() setup logging.
...
Basically, I don't want to enforce users to configure _any_ logging
stack when writing a basic worker, like this:
from rq import Worker, Queue, Connection
with Connection():
q = Queue()
w = Worker([q])
w.work(burst=True)
In case you want to disable logging altogether, you can configure your
logging stack to do so.
12 years ago
Vincent Driessen
90b15fd0b6
Don't silently fail when unpickling.
...
When a pickled job string can't be unpickled because some required
module isn't loadable, this leads to an `UnpickleError` in the worker
(not in the horse).
Currently we just assume "garbage" in the job's data field, and silently
ignore it.
This is bad.
Really bad.
Because it avoids the normal exception handling mechanism that RQ has.
Historically, this "feature" was introduced to ignore any invalid pickle
data ("bad strings") on queues, and go on. However, we must assume data
inside `job.data` to be valid pickle data.
While an invalid _format_ of pickle data (e.g. the string "blablah"
isn't valid) leads to unpickle errors, unpickling errors will also occur
when the job can't be validly constructed in memory for other reasons,
like being unable to load a specific class.
Django is a good example of this: try submitting jobs that use
`django.conf.settings` while the `DJANGO_SETTINGS_MODULE` env var isn't
set. Currently, RQ workers will drop these jobs and dismiss them like
any non-valid pickle data. You won't be notified.
This patch changes RQ's behaviour to never ignore invalid string data on
any queue and _always_ handle these errors explicitly (but without
bringing the main loop down, of course).
12 years ago
Selwin Ong
40d0a7d9a9
Removed __main__ that was accidentally added to rqworker script.
12 years ago
Selwin Ong
d1f586b413
Only configure logging handlers if not already present.
12 years ago
Javier Rey
d660b611db
ended_at time is now saved when job is finished
12 years ago
Selwin Ong
f498de57b6
Always call job.save even on synchronous queues so get_current_job doesn't fail
12 years ago
Vincent Driessen
10237ddcb4
Merge branch 'job-access-within-job'
...
Conflicts:
CHANGES.md
rq/job.py
12 years ago
Ulrich Petri
ba57f104ff
Switched config file loading to import lib to allow dotted "paths" to settings modules
12 years ago
Jon Parise
e90efc254b
Use `redis.from_url()` for greater compatibility.
...
This lets us keep the redis-py version requirement back at 2.4.13.
12 years ago
Jon Parise
eb00f69ced
Add a standard --url argument to all scripts.
...
redis-py now supports URL-based connection configuration. When --url
is specified, we use it to construct the Redis object. Otherwise, we
use the existing argument-based construction method.
`Redis.from_url()` is new in redis-py 2.6.2, so that prerequisite has
been adjusted accordingly.
12 years ago
Alexander Saltanov
0e638d795b
Don't show traceback in rqinfo when ^C is pressed.
12 years ago
Vincent Driessen
d80fa53d7e
Ugh. Syntax.
12 years ago
Vincent Driessen
11794ccef5
Merge branch 'sburns-no-colorize-notty'
12 years ago
Vincent Driessen
435cbc0f53
Simplify a bit.
12 years ago
Scott Burns
59a01b49f4
Don't colorize non-tty stdout/err
12 years ago
Vincent Driessen
9ff5b18ebb
Merge branch 'sburns-decorator-ttl'
12 years ago
Vincent Driessen
4e6b19d5ab
Bump version number.
12 years ago
Vincent Driessen
5e59c6e28e
Rename the const.
12 years ago
Scott Burns
538bbb1b55
Decorator accepts result_ttl argument
12 years ago
Timo Steidle
881b944283
Changed status "Running" into "started" to be more consistent with the other statuses
12 years ago
Timo Steidle
8787cfbb30
Added new job status "Running"
12 years ago
Vincent Driessen
c0df77f84d
Support QUEUES as a config setting in settings files.
12 years ago
Vincent Driessen
81270c8e59
Support REDIS_PASSWORD setting in settings.
12 years ago
Scott Burns
c705a2f06a
Expose Redis password to scripts
...
Allow rqworker and rqinfo to connect to
password-protected Redis hosts.
12 years ago
Vincent Driessen
7ff6ed72da
Add backward compat (will be removed in 0.4).
...
This is to support users that are relying on the current custom property
implementation. A warning will be displayed on the console, stating
that this support will be removed from RQ version 0.4.
12 years ago
Vincent Driessen
8cb6a21670
Only store custom properties when they're written to the meta dict.
12 years ago
Vincent Driessen
a247c6eaa1
Merge branch 'master' into remove-logbook
12 years ago
Vincent Driessen
4b66d7af41
Merge branch 'master' into job-access-within-job
...
Conflicts:
rq/job.py
12 years ago
Vincent Driessen
8581cd6463
Don't allow jobs without Redis connection.
...
And other connection-related fixes.
12 years ago
Vincent Driessen
f9137311b5
Release version 0.3.2.
12 years ago
Vincent Driessen
2f578a4c2d
Avoid dict comprehension for compatibility.
...
This fixes #128 .
12 years ago
Graeme Coupar
365d1d8226
Fixed argument handling in rqinfo
...
rqinfo was using None for the redis host and port, which was causing
exceptions when trying to connect. It was possible to supply these on
the commandline, but port was just being passed straight through as a
string, which also caused exceptions.
This commit moves some of the argument & configuration file handling out
of rqworker and into the scripts/__init__.py file, and then calls it
from rqinfo.
12 years ago
Vincent Driessen
95d3aed98e
Store the job ID on the internal stack.
...
It does so instead of the instance itself. Still returns the job---the
interface hasn't changed.
12 years ago
Vincent Driessen
372de4b45a
Implement the get_current_job() function.
...
This fixes #125 .
12 years ago
Vincent Driessen
879a87d158
Remove logbook and replace it with logging.
...
This reverts commit 1ab8c19696
and
reintroduces all changes made by @dstufft.
Still, it needs more patches to reeanble the default log-to-console
behaviour. See #121 .
12 years ago
Vincent Driessen
1ab8c19696
Revert "Remove logbook and replace it with logging".
...
This reverts the commit range f367c38..978ba2d.
Issue #121 is currently blocking the 0.3.1 release.
12 years ago
Vincent Driessen
a6e57dd7c0
Fix: change import path before importing settings module.
12 years ago
Vincent Driessen
ce1da3f5ca
Add support for configuration RQ workers with Sentry with a single flag.
...
This fixes #122 .
12 years ago
Vincent Driessen
1687633c07
Add support for passing configuration files to rqworker.
...
This fixes #123 .
12 years ago
Vincent Driessen
781f3e0460
Add test for custom exc handling.
12 years ago
Vincent Driessen
db80be4ef7
Fix typos.
12 years ago
Vincent Driessen
db4ec16be8
Also report job description.
12 years ago
Vincent Driessen
502bf59399
Add convenience directive to easily configure Sentry with RQ.
12 years ago
Vincent Driessen
cdc3a6c7a9
Convenience exc_handler registration in __init__.
...
Allow custom exception handlers to be passed in in the Worker
constructor.
12 years ago
Vincent Driessen
f457bd9da2
Remove incorrect arg to pop_exc_handler method.
12 years ago
Vincent Driessen
daa8f38b4b
Improve formatting of the exceptions on the console.
12 years ago
Vincent Driessen
a20deb2c52
Add custom exception handling capabilities.
...
This fixes #95 .
12 years ago
Vincent Driessen
a017756748
Fetch fresh status value on every request.
...
It could probably require a bit of caching, to prevent too many fetches
per time slot (for example, return the locally cached value if that
value is as fresh as a second or so).
This fixes #120 .
13 years ago
Vincent Driessen
35761a0d71
Merge branch 'selwin-persist-None-result'
13 years ago
Vincent Driessen
6b0ebe9ceb
Remove is_done property.
...
It is too similar to is_finished.
13 years ago
Vincent Driessen
bc7e32bae8
Add expiry info to the worker log.
13 years ago
Vincent Driessen
4b797fbf43
Don't use strings, but comments.
13 years ago
Vincent Driessen
9549b34d60
Add convenience accessor properties for status.
13 years ago
Vincent Driessen
4224304291
I like this implementation of an 'enum' better.
13 years ago
Selwin Ong
41946d1bb3
Worker.find_by_key now properly uses connection.
13 years ago
Selwin Ong
442b389b97
Job returning None as result are now persisted correctly.
...
Job status can now be checked via ``status`` property which should
return either "queued", "finished" or "failed".
13 years ago
Vincent Driessen
f06ef9c975
Merge branch 'selwin-async-2'
...
This fixes #114 .
13 years ago
Vincent Driessen
e2a0d83eee
Whoops.
13 years ago
Vincent Driessen
83369f3b9b
Prefer `result` over `return_value`.
...
`return_value` still is available as a backward-compatible accessor.
This fixes #116 .
13 years ago
Selwin Ong
06d75630e0
Execute job immediately if Queue(async=False)
13 years ago
Donald Stufft
58ccd337c0
Don't hardcode a name into logging.getLogger
13 years ago
Donald Stufft
66235f7ad0
Switch to using slightly more pythonic log code
13 years ago
Donald Stufft
aeb17d0497
Make the rqworker script use the logging module instead of logbook
13 years ago
Donald Stufft
82c4ac6ec2
Add a Handler that enables colorized output
13 years ago
Vincent Driessen
f367c38132
Bump version number and add changelog.
13 years ago
Vincent Driessen
720011c33e
Merge branch 'selwin-result_ttl'
13 years ago
Vincent Driessen
a9cb201d39
PEP8ify.
13 years ago
Vincent Driessen
5963ec6d77
Try to make the expiration code a bit more readable.
13 years ago
Vincent Driessen
4b2838943b
Rename rv_ttl to default_result_ttl.
13 years ago
Vincent Driessen
78864e2581
PEP8ify.
13 years ago