【发布时间】: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
虽然 send_task 和 apply_task 方法的语法不同,但它们具有相似的参数。 具有队列名称的 send_task 在与 apply_async 一起工作的地方不起作用。
task_routes={\'celery_tasks.send_email\': {\'queue\': \'email\'}})
有什么区别?文档说这两种方法都是相同的。
标签: python-3.x flask celery
它们实际上是根本不同的。要使 apply_async() 工作,您需要您的任务定义可用。 send_task() 会将带有 args 和 kwargs 的任务发送到特定队列,如果订阅该队列的工作人员知道如何执行该特定任务(如果已注册),则返回结果。
如果您不想与生产者共享代码,这会使 send_task() 变得非常有用。我在很多地方都用这个。
【讨论】: