我有四个耗时的任务,应该一个接一个地执行,上一个任务的结果可以作为下一个任务的输入。所以我选择芹菜连锁店来做到这一点。我以以下代码为例:
mychain = chain(task1.s({'a': 1}), task2.s(), task3.s(), task4.s())
mychain.apply_async()
但是任务的执行顺序是:
enter code here`task1() ---> task4() ---> task3() --->task2()
我不知道会发生什么。
我通过龙卷风运行一个Web服务器,它按链唤醒了任务。
记录:
[2018-07-23 18:34:12,816][pid:25557][tid:140228657469056][util.py:109] DEBUG: chain: fetch({}) | callback() | convert() | format()
其他任务在芹菜中运行
记录:
[2018-07-23 18:34:12,816: INFO/MainProcess] Received task: fetch[045acf81-274b-457c-8bb5-6d0248264b76]
[2018-07-23 18:34:17,786: INFO/MainProcess] Received task: format[103b4ffa-57db-4b04-a745-7dfee5786695]
[2018-07-23 18:34:18,227: INFO/MainProcess] Received task: convert[81ddbaf9-37b3-406a-b608-a05affa97f45]
[2018-07-23 18:34:20,942: INFO/MainProcess] Received task: callback[b1ea7c70-db45-4501-9859-7ad22532c38a]
答案 0 :(得分:0)
原因是两台机器的芹菜版本不同! 然后我们设置相同的芹菜版本,它们就起作用了!