301 Commits (995554cdd281bceff07d2dc75305670d56a02c40)

Author SHA1 Message Date
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