views.py 882 B

1234567891011121314151617181920212223242526
  1. """celery.views"""
  2. from django.http import Http404, HttpResponse
  3. from celery.task import is_done, delay_task
  4. from celery.result import AsyncResult
  5. import simplejson
  6. def apply_async(request, task_name, *args, **kwargs):
  7. res = delay_task(task_name, args, kwargs)
  8. def is_task_done(request, task_id):
  9. """Returns task execute status in JSON format."""
  10. response_data = {"task": {"id": task_id, "executed": is_done(task_id)}}
  11. return HttpResponse(simplejson.dumps(response_data))
  12. def task_status(request, task_id):
  13. """Returns task status and result in JSON format."""
  14. async_result = AsyncResult(task_id)
  15. response_data = {"task": {
  16. "id": task_id,
  17. "status": async_result.get_status(),
  18. "result": async_result.get_result(),
  19. }}
  20. return HttpResponse(simplejson.dumps(response_data))