【问题标题】:Difference between send_task and apply_async in Celery, Flask when I used send_task along with queue name is not working当我使用 send_task 和队列名称时,Celery 和 Flask 中的 send_task 和 apply_async 之间的区别不起作用
【发布时间】:2022-09-22 20:52:31
【问题描述】:

虽然 send_task 和 apply_task 方法的语法不同,但它们具有相似的参数。 具有队列名称的 send_task 在与 apply_async 一起工作的地方不起作用。

task_routes={\'celery_tasks.send_email\': {\'queue\': \'email\'}})

有什么区别?文档说这两种方法都是相同的。

    标签: python-3.x flask celery


    【解决方案1】:

    它们实际上是根本不同的。要使 apply_async() 工作,您需要您的任务定义可用。 send_task() 会将带有 args 和 kwargs 的任务发送到特定队列,如果订阅该队列的工作人员知道如何执行该特定任务(如果已注册),则返回结果。

    如果您不想与生产者共享代码,这会使 send_task() 变得非常有用。我在很多地方都用这个。

    【讨论】:

      猜你喜欢
      • 2020-07-20
      • 2017-03-12
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 2020-05-15
      • 1970-01-01
      • 2013-05-02
      相关资源
      最近更新 更多