Celery result backend that stores everything.
Project description
- Version:
- 0.1
This projects has two goals:
Provide a result backend that can store enough information about a task to retry it if necessary.
Provide a way to identify tasks that are never completed (e.g., if the worker crashes before it can report the result).
Requirements
django-celery-fulldbresult works with Python 2.7 and 3.4. It requires Celery 3.1+, django-celery 3.1.16+, and Django 1.7+
Installation
pip install django-celery-fulldbresult
Usage
As a result backend
Just set these variables in your settings.py file:
CELERY_RESULT_BACKEND = 'django_celery_fulldbresult.result_backends:DatabaseResultBackend' CELERY_IGNORE_RESULT = False
Tasks can be retrieved with the TaskResultMeta model:
import json from testcelery.celery import app as celery_app from django_celery_fulldbresult.models import TaskResultMeta task = TaskResultMeta.objects.all()[0] task_name = task.task task_args = json.loads(task.args) task_kwargs = json.loads(task.kwargs) celery_app.send_task(task_name, args=task_args, kwargs=task_kwargs)
As a way to detect tasks that never complete
First, set this variable in your settings.py file:
DJANGO_CELERY_FULLDBRESULT_TRACK_PUBLISH = True
This will save the task in the database with a status of PENDING.
If you want to get all tasks that are more than one-hour old and are still pending:
from datetime import timedelta from django_celery_fulldbresult.models import TaskResultMeta # Returns a QuerySet stale_tasks = TaskResultMeta.objects.get_stale_tasks(timedelta(hours=1))
You can also use the find_stale_tasks Django command:
$ python manage.py find_stale_tasks --hours 1 Stale tasks: 2015-05-27 14:17:37.096366+00:00 - cf738350-afe8-44f8-9eac-34721581eb61: email_workers.tasks.send_email
Finally, the task results are automatically added to the Django Admin site. You can select task results and retry them: this action will send a copy of each task to the worker using the routes you have defined.
License
This software is licensed under the New BSD License. See the LICENSE file in the repository for the full license text.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-celery-fulldbresult-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32e25f95db6105579e8c248f06b2141297423c543c910204976bd2354ea1742f |
|
MD5 | ba1150dfd443398f4afaa4a81aced4e7 |
|
BLAKE2b-256 | bd2d3b45ae3de32d93d6494352c477a3306299ecf835f42b7ad78205145c490c |
Hashes for django_celery_fulldbresult-0.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8703cc8213df5d0e3f2253bc1d450ca6771879bbb6776e23ac8a20a2e938b02c |
|
MD5 | 17b625bfc82cf4ed36d801cfd5c4ba46 |
|
BLAKE2b-256 | 0771ef299c42dd4e5823c8d0466bd8791fc0987a8586fcd5569aa96eb78651a2 |