链式芹菜任务是否保证在同一个节点工作器上运行?
我知道我可以为专用任务构建队列,但是我的任务链涉及创建需要发送到S3的png文件。 png文件的创建是链中的一个不同任务,因此如果它们在不同的工作程序中运行,则下一个任务可能找不到png文件。
我不想为它构建一个单独的队列,因为否则我需要在该特定队列中运行所有任务而不是其他任何队列。
result = (process_diode.s() | plot_results.s() | send_to_s3.s()).apply_async()
在上面的代码中,如果 plot_results 任务和 send_to_s3 任务在不同的工作程序中运行,则不能保证png文件将在那里。
保证链中的所有任务在同一个工作节点中运行对我来说已经足够了。是这样的吗?
答案 0 :(得分:3)
不,绝对没有这样的保证。这里有两个解决方案:编写一个可以同时执行所有三项操作的任务,或者使用共享文件系统来存储文件。