现在有 10 台机器,其中 7 台执行 A 任务 ,3 台执行 B 任务。要求是 A 任务运行完毕丢给 B 任务按照顺序执行。
比如 A1 A3 A7 做完了,然后 B1 B2 B3 执行, 其他 A 做完下次来任务了,还是 B1 B2 B3 顺序来做。
请教下,谢谢
比如 A1 A3 A7 做完了,然后 B1 B2 B3 执行, 其他 A 做完下次来任务了,还是 B1 B2 B3 顺序来做。
请教下,谢谢
1
keepfun Aug 2, 2023 via iPhone
有个曲线救国的方案 每个任务执行前检测它的前置完成没,没有完成就等。
执行完成的写入 redis 。 |
2
Akkuman Aug 2, 2023 via Android
1. 可以使用 celery 的任务链
2. 正常在 worker 函数里面调用 delay ,会报错,然后按照提示修改下配置即可 |
3
UN2758 Aug 2, 2023
没太看懂,B1 严格依赖 A1 类型的任务还是简单的 B 类型依赖 A 类型? celery 文档里有 task chain 模式介绍,应该足够满足你的需求了
|
4
UN2758 Aug 2, 2023
你这里 B 类型需要严格要求按 1-2-3 优先级顺序分配负载还是三个都要执行一遍?优先级可以考虑配置 worker 权重
|