Celery Expires - Throw Exception

In documents a link about expiration

# Task expires after one minute from now. add.apply_async(args=[10, 10], expires=60) 

I use:

 from tasks import add result = add.apply_async(args=[10, 10], expires=6000) printus(result) def printus(result): print (result) #task id print (result.ready()) # returns True if the task has finished processing. print (result.result) # task is not ready, so no return value yet. print (result.get()) # Waits until the task is done and returns the retval. print (result.result) # direct access to result, doesn't re-raise errors. print (result.successful()) # returns True if the task didn't end in failure.) 

tasks.py

 from celery.task import task @task def add(x, y): return x + y 

In celery:

 [2012-03-21 19:50:03,012: WARNING/MainProcess] Skipping revoked task: tasks.add[4ffcff91-b12b-4bce-8d47-159314759859] 

In the console:

 4ffcff91-b12b-4bce-8d47-159314759859 True Traceback (most recent call last): File "/home/echeg/Dropbox/my_py/opoveshun/tests/celery/run_task.py", line 53, in <module> tr.countdown() File "/home/echeg/Dropbox/my_py/opoveshun/tests/celery/run_task.py", line 26, in countdown self.printus(result) File "/home/echeg/Dropbox/my_py/opoveshun/tests/celery/run_task.py", line 48, in printus print (result.get()) # Waits until the task is done and returns the retval. File "/usr/local/lib/python2.7/dist-packages/celery/result.py", line 95, in get interval=interval) File "/usr/local/lib/python2.7/dist-packages/celery/backends/amqp.py", line 144, in wait_for raise self.exception_to_python(meta["result"]) celery.exceptions.TaskRevokedError 

Why am I getting an exception? Result did not expire

If I use:

 result = add.apply_async(args=[10, 10]) 

everything is fine

 226107de-f739-4860-83bc-d843f17a257e False None 20 20 True 
+4
source share
1 answer

celeryd thinks your task has expired:

 [2012-03-21 19:50:03,012: WARNING/MainProcess] Skipping revoked task: tasks.add[4ffcff91-b12b-4bce-8d47-159314759859] 

When expired work is picked up by the worker, cancels it without execution. Check your time zone settings? I had the opposite problem: tasks did not end when they should. This fixed it for me:

 CELERY_ENABLE_UTC = True CELERY_TIMEZONE = 'Etc/UTC' 
+5
source

Source: https://habr.com/ru/post/1402668/


All Articles