Running Celery tasks
The delay
method is a shorthand version of the apply_async
method, which is called in this format:
task.apply_async( args=[1, 2], kwargs={'kwarg1': '1', 'kwarg2': '2'} )
However, the args
keyword can be implicit:
apply_async([1, 2], kwargs={'kwarg1': '1', 'kwarg2': '2'})
Calling apply_async
allows you to define some extra functionality in the task call that you cannot specify in the delay
method. First, the countdown
option specifies the amount of time in seconds the worker should wait to run the task after receiving it:
>>> from webapp.tasks import log >>> log.apply_async(["Message"], countdown=600)
countdown
is not a guarantee that the task will be run after 600
seconds. countdown
only says that the task is up for processing ...
Get Mastering Flask now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.