O'Reilly logo

Mastering Flask by Jack Stouffer

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required