Create celery tasks then run synchronously

后端 未结 2 581
暖寄归人
暖寄归人 2020-12-28 16:27

My app gathers a bunch of phone numbers on a page. Once the user hits the submit button I create a celery task to call each number and give a reminder message then redirect

2条回答
  •  青春惊慌失措
    2020-12-28 17:08

    If you look at the celery DOCS on tasks you see that to call a task synchronosuly, you use the apply() method as opposed to the apply_async() method.

    So in your case you could use:

     reminder.apply(args=[number])
    

    The DOCS also note that:
    If the CELERY_ALWAYS_EAGER setting is set, it will be replaced by a local apply() call instead.

    Thanks to @JivanAmara who in the comments reiterated that when using apply(), the task will run locally(in the server/computer in which its called). And this can have ramifications, if you intended to run your tasks across multiple servers/machines.

提交回复
热议问题