【发布时间】:2018-11-11 13:12:59
【问题描述】:
是否保证链式 celery 任务在同一个节点 worker 上运行?
我知道我可以为专用任务建立一个队列,但是我的任务链涉及创建需要发送到 S3 的 png 文件。 png 文件的创建是链中的一项不同任务,因此如果它们在不同的工作人员中运行,则下一个任务可能找不到 png 文件。
我不想为它建立一个单独的队列,因为否则我需要运行该特定队列中的所有任务,而别处。
result = (process_diode.s() | plot_results.s() | send_to_s3.s()).apply_async()
在上述代码中,如果 plot_results 任务和 send_to_s3 任务在不同的工作人员中运行,则无法保证 png 文件会存在。
保证链中的所有任务都在同一个工作节点上运行对我来说已经足够了。是这样吗?
【问题讨论】:
标签: python django rabbitmq celery