|
|
@ -7,7 +7,7 @@ Each queue maintains a set of Job Registries:
|
|
|
|
* `StartedJobRegistry` Holds currently executing jobs. Jobs are added right before they are
|
|
|
|
* `StartedJobRegistry` Holds currently executing jobs. Jobs are added right before they are
|
|
|
|
executed and removed right after completion (success or failure).
|
|
|
|
executed and removed right after completion (success or failure).
|
|
|
|
* `FinishedJobRegistry` Holds successfully completed jobs.
|
|
|
|
* `FinishedJobRegistry` Holds successfully completed jobs.
|
|
|
|
* `FailedJobRegistry` Holds jobs that have failed.
|
|
|
|
* `FailedJobRegistry` Holds jobs that have been executed, but didn't finish successfully.
|
|
|
|
* `DeferredJobRegistry` Holds deferred jobs (jobs that depend on another job and are waiting for that
|
|
|
|
* `DeferredJobRegistry` Holds deferred jobs (jobs that depend on another job and are waiting for that
|
|
|
|
job to finish).
|
|
|
|
job to finish).
|
|
|
|
|
|
|
|
|
|
|
@ -20,15 +20,15 @@ from rq import Queue
|
|
|
|
from rq.registry import StartedJobRegistry
|
|
|
|
from rq.registry import StartedJobRegistry
|
|
|
|
from somewhere import count_words_at_url
|
|
|
|
from somewhere import count_words_at_url
|
|
|
|
|
|
|
|
|
|
|
|
conn = Redis()
|
|
|
|
redis = Redis()
|
|
|
|
queue = Queue(connection=conn)
|
|
|
|
queue = Queue(connection=redis)
|
|
|
|
job = queue.enqueue(count_words_at_url, 'http://nvie.com')
|
|
|
|
job = queue.enqueue(count_words_at_url, 'http://nvie.com')
|
|
|
|
|
|
|
|
|
|
|
|
# get StartedJobRegistry by queue
|
|
|
|
# get StartedJobRegistry by queue
|
|
|
|
registry = StartedJobRegistry(queue=queue)
|
|
|
|
registry = StartedJobRegistry(queue=queue)
|
|
|
|
|
|
|
|
|
|
|
|
# or get StartedJobRegistry by queue name and connection
|
|
|
|
# or get StartedJobRegistry by queue name and connection
|
|
|
|
registry2 = StartedJobRegistry(name='my_queue', connection=conn)
|
|
|
|
registry2 = StartedJobRegistry(name='my_queue', connection=redis)
|
|
|
|
|
|
|
|
|
|
|
|
# sleep for a moment while job is taken off the queue
|
|
|
|
# sleep for a moment while job is taken off the queue
|
|
|
|
time.sleep(0.1)
|
|
|
|
time.sleep(0.1)
|
|
|
@ -42,4 +42,30 @@ print('IDs in registry %s' % registry.get_job_ids())
|
|
|
|
# test if a job is in the registry using the job instance or job id
|
|
|
|
# test if a job is in the registry using the job instance or job id
|
|
|
|
print('Job in registry %s' % (job in registry))
|
|
|
|
print('Job in registry %s' % (job in registry))
|
|
|
|
print('Job in registry %s' % (job.id in registry))
|
|
|
|
print('Job in registry %s' % (job.id in registry))
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Removing Jobs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To remove a job from a job registry, use `registry.remove()`. This is useful
|
|
|
|
|
|
|
|
when you want to manually remove jobs from a registry, such as deleting failed
|
|
|
|
|
|
|
|
jobs before they expire from `FailedJobRegistry`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
|
|
|
from redis import Redis
|
|
|
|
|
|
|
|
from rq import Queue
|
|
|
|
|
|
|
|
from rq.registry import FailedJobRegistry
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
redis = Redis()
|
|
|
|
|
|
|
|
queue = Queue(connection=redis)
|
|
|
|
|
|
|
|
registry = FailedJobRegistry(queue=queue)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# This is how to remove a job from a registry
|
|
|
|
|
|
|
|
for job_id in registry.get_job_ids():
|
|
|
|
|
|
|
|
registry.remove(job_id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# If you want to remove a job from a registry AND delete the job,
|
|
|
|
|
|
|
|
# use `delete_job=True`
|
|
|
|
|
|
|
|
for job_id in registry.get_job_ids():
|
|
|
|
|
|
|
|
registry.remove(job_id, delete_job=True)
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|