Skip to content

Instantly share code, notes, and snippets.

@sehmaschine
Created March 2, 2013 13:54
Show Gist options
  • Save sehmaschine/5071098 to your computer and use it in GitHub Desktop.
Save sehmaschine/5071098 to your computer and use it in GitHub Desktop.
celery update_state issue
from tasks import full_export_task
def export_year_zip(user):
full_export_task.update_state(state="PROGRESS", meta={})
task()
def full_export_task(user, task_id=None):
from export.views.user_full_export import export_year_zip
result = export_year_zip(user)
return result
@sehmaschine
Copy link
Author

The above code is just an example. export_year_zip is actually much longer and does exactly what you've described: telling the user how much of the export has already been processed with a long–running task.

The problem I'm having is this: You say that it refers to the "current task". But how does celery know what the "current task" is when I'm having 4 tasks running synchronously? I just want to prevent that all 4 tasks suddenly have the same state. And before I push this to the live instance I wanted to make sure that this code is supposed to work (although the tests are running fine).

@honza
Copy link

honza commented Mar 2, 2013

I think the problem is that you're calling update_state from outside the @task-decorated function. Not really sure, sorry.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment