Vincent Driessen
e29981a008
Bump to new development version.
13 years ago
Vincent Driessen
55bb32cb36
Release 0.3.3.
13 years ago
Vincent Driessen
d1c2b3b78d
Merge branch 'selwin-remove-logbook'
...
Conflicts:
rq/utils.py
rq/worker.py
setup.cfg
setup.py
13 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.
13 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).
13 years ago
Selwin Ong
40d0a7d9a9
Removed __main__ that was accidentally added to rqworker script.
13 years ago
Selwin Ong
d1f586b413
Only configure logging handlers if not already present.
13 years ago
Javier Rey
d660b611db
ended_at time is now saved when job is finished
13 years ago
Selwin Ong
f498de57b6
Always call job.save even on synchronous queues so get_current_job doesn't fail
13 years ago
Vincent Driessen
10237ddcb4
Merge branch 'job-access-within-job'
...
Conflicts:
CHANGES.md
rq/job.py
13 years ago
Ulrich Petri
ba57f104ff
Switched config file loading to import lib to allow dotted "paths" to settings modules
13 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.
13 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.
13 years ago
Alexander Saltanov
0e638d795b
Don't show traceback in rqinfo when ^C is pressed.
13 years ago
Vincent Driessen
d80fa53d7e
Ugh. Syntax.
13 years ago
Vincent Driessen
11794ccef5
Merge branch 'sburns-no-colorize-notty'
13 years ago
Vincent Driessen
435cbc0f53
Simplify a bit.
13 years ago
Scott Burns
59a01b49f4
Don't colorize non-tty stdout/err
13 years ago
Vincent Driessen
9ff5b18ebb
Merge branch 'sburns-decorator-ttl'
13 years ago
Vincent Driessen
4e6b19d5ab
Bump version number.
13 years ago
Vincent Driessen
5e59c6e28e
Rename the const.
13 years ago
Scott Burns
538bbb1b55
Decorator accepts result_ttl argument
13 years ago
Timo Steidle
881b944283
Changed status "Running" into "started" to be more consistent with the other statuses
13 years ago
Timo Steidle
8787cfbb30
Added new job status "Running"
13 years ago
Vincent Driessen
c0df77f84d
Support QUEUES as a config setting in settings files.
13 years ago
Vincent Driessen
81270c8e59
Support REDIS_PASSWORD setting in settings.
13 years ago
Scott Burns
c705a2f06a
Expose Redis password to scripts
...
Allow rqworker and rqinfo to connect to
password-protected Redis hosts.
13 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.
13 years ago
Vincent Driessen
8cb6a21670
Only store custom properties when they're written to the meta dict.
13 years ago
Vincent Driessen
a247c6eaa1
Merge branch 'master' into remove-logbook
13 years ago
Vincent Driessen
4b66d7af41
Merge branch 'master' into job-access-within-job
...
Conflicts:
rq/job.py
13 years ago
Vincent Driessen
8581cd6463
Don't allow jobs without Redis connection.
...
And other connection-related fixes.
13 years ago
Vincent Driessen
f9137311b5
Release version 0.3.2.
13 years ago
Vincent Driessen
2f578a4c2d
Avoid dict comprehension for compatibility.
...
This fixes #128 .
13 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.
13 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.
13 years ago
Vincent Driessen
372de4b45a
Implement the get_current_job() function.
...
This fixes #125 .
13 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 .
13 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.
13 years ago
Vincent Driessen
a6e57dd7c0
Fix: change import path before importing settings module.
13 years ago
Vincent Driessen
ce1da3f5ca
Add support for configuration RQ workers with Sentry with a single flag.
...
This fixes #122 .
13 years ago
Vincent Driessen
1687633c07
Add support for passing configuration files to rqworker.
...
This fixes #123 .
13 years ago
Vincent Driessen
781f3e0460
Add test for custom exc handling.
13 years ago
Vincent Driessen
db80be4ef7
Fix typos.
13 years ago
Vincent Driessen
db4ec16be8
Also report job description.
13 years ago
Vincent Driessen
502bf59399
Add convenience directive to easily configure Sentry with RQ.
13 years ago
Vincent Driessen
cdc3a6c7a9
Convenience exc_handler registration in __init__.
...
Allow custom exception handlers to be passed in in the Worker
constructor.
13 years ago
Vincent Driessen
f457bd9da2
Remove incorrect arg to pop_exc_handler method.
13 years ago
Vincent Driessen
daa8f38b4b
Improve formatting of the exceptions on the console.
13 years ago
Vincent Driessen
a20deb2c52
Add custom exception handling capabilities.
...
This fixes #95 .
13 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
Selwin Ong
a5e6765990
Added "result_ttl" property on jobs that determines how long job results are persisted in Redis.
13 years ago
Vincent Driessen
5f4bb8dfc5
Fix word ordering.
13 years ago
Vincent Driessen
5cbc59205a
Add changelog and bump version to 0.3.0.
13 years ago
Vincent Driessen
1177caf4bf
Set state to busy as early as possible.
13 years ago
Vincent Driessen
f2d5ebf2fe
Merge branch 'master' into selwin-warm-shutdown-2
...
Conflicts:
rq/worker.py
13 years ago
Vincent Driessen
1536546613
Worker/horse distinction in signal handler is obsolete.
13 years ago
Vincent Driessen
a6bb526773
Fix that doens't abort the currently running job on Ctrl+C.
13 years ago
Vincent Driessen
9bfd686be3
Merge hotfix/0.2.2
13 years ago
Vincent Driessen
4d9881eef2
Print version number when running the server.
13 years ago
Vincent Driessen
080431702d
Bump the version.
13 years ago
Vincent Driessen
1bc0c3d223
Fix bug where pickling the return value caused an uncaught exception.
13 years ago
Selwin Ong
a4f1de358f
Raise a StopException when Control+C is pressed.
13 years ago
Vincent Driessen
4057ae768b
Merge branch 'selwin-decorator'
13 years ago
Vincent Driessen
2cb058e91a
PEP8ify.
13 years ago
Vincent Driessen
d697ddb93a
Resolve connections early.
...
Fixes #101 .
13 years ago
Vincent Driessen
dbf101bc06
Update comment.
13 years ago
Vincent Driessen
a1d08a64fc
Add @wraps() call.
13 years ago
Vincent Driessen
6b79e51033
PEP8ify.
13 years ago
Vincent Driessen
ea19bdc910
Merge branch 'new-enqueue' into selwin-decorator
13 years ago
Vincent Driessen
abac4a5f41
Since we only have the timeout option, don't be too generic.
13 years ago
Selwin Ong
8c3292d35b
Make "queue" argument in job decorator required.
...
job decorator now uses Queue's "enqueue_call" method.
13 years ago
Selwin Ong
ae97f862dc
Merge branch 'master' into decorator
13 years ago
Vincent Driessen
f6374f2dfa
Add new way of invoking .enqueue(), either implicitly or explicitly.
13 years ago
Vincent Driessen
e6bb7de8c0
Get rid of the ambiguity when passing the timeout argument to .enqueue() calls.
13 years ago
Vincent Driessen
f6e67431d7
Refactor the .enqueue() API to not gobble the timeout kwargs.
...
This fixes #98 .
13 years ago
Vincent Driessen
8436d9b2c8
PEP8ify.
13 years ago
Selwin Ong
bdc1af28d1
Added a job decorator.
13 years ago