2

我在 Celery 中有任务 A 和 B。B 是 A 的对手。因此,当这个任务以相同的参数并行运行时,系统变得不一致。有两个问题:

  1. 我可以始终根据参数连续运行任务 A 和 B 吗?我想连续运行带有参数 1 的 A 和带有参数 1 的 B,但是 A(1) 和 B(2) 可以并行运行。

  2. 有没有办法折叠尚未运行的重复任务序列?比如说,我在代理中有 ABABAB 任务(在我的例子中是 Redis),我可以只执行 AB 吗?

我倾向于认为这两个问题都可以通过高级代理解决,但我想避免部署 RabbitMQ。

提前致谢。

4

1 回答 1

1

我决定为 Redis 中的任务维护单独的队列。当我向 Celery 发送新任务时,我还将它添加到 Redis 列表中。当任务运行时,它决定它必须做什么:A 或 B 取决于当前系统状态。

解决方案看起来不太好,但我希望不会造成问题。

于 2013-12-16T09:04:28.397 回答