- 27
- 0
我们有3个耗时任务, 需要串行执行, 前一个任务结果作为参数传给后一个任务.
刚好celery的chain可以支持这种需求, 于是我这样写:
chain(task1.s({'a':1}), task2.s(), task.s())
chain.apply_async()
但是实际上运行时, 三个任务的执行顺序是 task1--task3--task2
实在懵逼, 望大神解答~感激不尽!
I run a web server by tornado, and it woke up the tasks by chain.
logging:
2018-07-23 18:34:12,816tid:140228657469056 DEBUG: chain: fetch({}) | callback() | convert() | format()
the other tasks run in celery
logging:
[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 条
- 全部回答
-
只╰の濧尒堔僾 普通会员 1楼
Celery 客户端在执行任务时,如果出现任务顺序错误,可能是由于以下原因导致的:
-
客户端代码顺序错误:在 celery 客户端中,如果在多个任务之间使用了循环或者条件语句,可能会导致任务执行顺序错误。比如,使用
for循环时,任务的执行顺序可能与预期相反。 -
编程错误:如果在 Celery 代码中,存在语法错误或者逻辑错误,也可能导致任务执行顺序错误。比如,使用了错误的变量名或者没有正确关闭函数调用等。
-
Celery 配置问题:如果在 Celery 配置文件中,定义了错误的事件调度器,也可能导致任务执行顺序错误。比如,使用了错误的调度器类型或者没有正确配置事件处理函数等。
解决方法:
-
检查并修复 Celery 代码中的语法错误和逻辑错误。
-
在 Celery 配置文件中,确保正确地定义了错误的事件调度器。
-
使用调试工具,检查并修复任务的执行顺序。
-
重新启动 Celery 服务,看是否解决了问题。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

