flask - 从 celery 任务创建的任务被创建了两次
问题描述
我们在烧瓶 0.10.1 应用程序中使用带有 redis 后端的 celery 3.1.17。在我们的服务器上,从某个 celery 任务创建的每个 celery 任务都会被创建两次。例如,
@celery.task(name='send_some_xyz_users_alerts')
def send_some_xyz_users_alerts():
list_of_users = find_some_list_of_users()
for user in list_of_users:
send_user_alert.delay(user)
@celery.task(name='send_user_alert')
def send_user_alert(user):
data = get_data_for_user(user)
send_mail_to_user(data)
如果我们send_some_xyz_users_alerts
从我们的应用程序开始,它会运行一次。然后我看到send_user_alert
每个用户在 celery 中运行 2 个任务。这两个任务都有不同的 task_id。我们有 2 名工作人员在服务器上运行。有时这些重复的任务在同一个工作人员上运行。有时在不同的工人身上。我已经尝试了很多来找到问题,但没有任何运气。如果有人知道为什么会发生这种情况,我将不胜感激。在这些版本的 celery 和 flask 上运行了好几个月,突然我们在服务器上看到了这个问题。任务在本地环境中运行良好。
解决方案
推荐阅读
- typescript - 打字稿:检查联合类型是否不相交
- mysql - MySQL选择只计算每年的新ID
- python - 对于这个例子,如何在 pandas 中创建一个数据透视表?
- java - 使用 POST 从 Java 发送文件
- qt - 将 QML 与 qt 小部件类型的 ui 表单一起使用?
- firebase - Flutter:监听firebase快照时如何返回bool值?
- sql - SQL 上次日期时间值
- postgresql - 在 PostgreSQL 的递归查询函数中使用 PERFORM
- python-3.x - 无法让 .exe 在其他机器上执行 - “No module named serial”错误
- android - 错误:flutter/lib/ui/ui_dart_state.cc(148) 未处理的异常