Python 为什么芹菜链中的任务执行无序?

Python 为什么芹菜链中的任务执行无序?,python,Python,我有四个耗时的任务,应该一个接一个地执行,上一个任务的结果可以作为下一个任务的输入。所以我选择芹菜链来做这个。我用下面的代码来做这个例子: mychain = chain(task1.s({'a': 1}), task2.s(), task3.s(), task4.s()) mychain.apply_async() 但任务的执行顺序是: enter code here`task1() ---> task4() ---> task3() --->task2() 我不知道发生

我有四个耗时的任务,应该一个接一个地执行,上一个任务的结果可以作为下一个任务的输入。所以我选择芹菜链来做这个。我用下面的代码来做这个例子:

mychain = chain(task1.s({'a': 1}), task2.s(), task3.s(), task4.s())
mychain.apply_async()
但任务的执行顺序是:

enter code here`task1() ---> task4() ---> task3() --->task2()
我不知道发生了什么

我通过tornado运行一个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]
其他任务在芹菜中运行

日志记录:

[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]

原因是这两台机器的芹菜版本不同!
然后我们设置相同的芹菜版本,它们工作

给出我们可以复制的最小代码,
chain
在我的本地机器中与序列配合得很好。我们在本地机器中尝试chain,它可以工作。事实上,我们所做的是在一台机器上运行一个web服务器,在另一台机器上运行一些消费任务和芹菜,它们通过向redis发送一些消息和数据进行通信。因此,我怀疑问题是否出在web服务器和任务机器之间的通信中。但我找不到它们,也无法给出你的最小代码~