gpt4 book ai didi

python - 将 celery 与现有的 MySQL 表一起使用而不是 broker ,这可能吗?

转载 作者:太空狗 更新时间:2023-10-30 01:16:10 24 4
gpt4 key购买 nike

手头的任务:

有一个 MySQL 表,其中将用户事件作为一行推送。该事件需要稍后处理。

id    |  activity_type  |  activity_data | creation_time | status
23 EMAIL {....... } 2013-02-01 UNPROCESSED

没有 celery 的处理:

  • 使用脚本拾取 N 条记录进行处理,处理它们,然后将已处理记录的状态更新为已处理。

如何使用 Celery 实现相同的功能,我想使用相同的功能来标记任务而不是使用代理?即任务添加 -> 将最旧的 10 行添加到状态为 UNPROCESSED 的 mysql 表中,该表也包含与任务相关的数据。

任务完成时 -> 将行标记为已处理。

celery 如何被告知它必须从 MySQL 表中检索任务而不是将任务推送到代理上?

我是 Celery 的初学者,因此不了解它的所有功能。不推荐使用 MySQL 作为 broker,但我想知道可行性。

最佳答案

我认为您误解了 celery 的工作方式。您不能只用自己设计的 MySQL 表替换它的代理 - 好吧,不能不对其源代码进行实质性更改。

broker 是 celery 的一个内部部分,它使用它自己的内部格式来跟踪它的任务,所以仅仅使用 MySQL broker 并没有固有的优势,因为这是你当前存储必要信息的方式执行您的任务。

如果您愿意,您仍然可以使用 celery,但是您必须编写必要的代码来将您的用户事件表转换为 celery 任务。

但是,我建议先尝试使用 celery 来......

  1. 基本了解如何使用它
  2. 确定它是否适合您要实现的目标

celery tutorial 开始,看看接下来会怎样。

关于python - 将 celery 与现有的 MySQL 表一起使用而不是 broker ,这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699143/

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