gpt4 book ai didi

python - 与 celery 正在进行的任务交互

转载 作者:IT老高 更新时间:2023-10-28 22:16:06 75 4
gpt4 key购买 nike

我们有一个基于 rabbitMQCelery 的分布式架构。我们可以毫无问题地并行启动多个任务。扩展性好。

现在我们需要远程控制任务:暂停、恢复、取消。我们找到的唯一解决方案是在 Celery 任务中对另一个任务进行 RPC 调用,该任务在 DB 请求后回复命令。 Celery 任务和 RPC 任务不在同一台机器上,只有 RPC 任务可以访问数据库。

您对如何改进它并轻松与正在进行的任务进行沟通有什么建议吗?谢谢

编辑:事实上,我们想做如下图所示的事情。 Blue 配置或 Orange 配置很容易,但我们不知道如何同时进行。 enter image description hereWorker 订阅了一个通用的 Jobs queue,每个 worker 都有自己的 Admin queue 在交换中声明。

编辑:如果 Celery 无法做到这一点,我愿意接受其他框架的解决方案,例如 python-rq

最佳答案

看起来像 Control Bus pattern .

为了更好的可扩展性和减少 RPC 调用,我建议反转逻辑。 PAUSE, RESUME, CANCEL 命令在状态改变发生时通过控制总线推送到 Celery 任务。 Celery 应用程序会将 Celery 应用程序的当前状态存储在存储中(可能在内存中,在文件系统中......)。如果即使在应用程序停止/启动后也必须保持任务状态,这将涉及更多工作以保持两个应用程序同步(例如启动时同步)。

关于python - 与 celery 正在进行的任务交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30481996/

75 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com