gpt4 book ai didi

python - 从异步 celery worker 发出的 SocketIO 不工作

转载 作者:太空狗 更新时间:2023-10-29 21:59:44 26 4
gpt4 key购买 nike

我正在使用 Flask-SocketIO 创建一个实时通知系统。有一个外部 API 服务器通过 RPC 在单独的线程中调用 socketio 服务器。 RPC 调用的方法会创建一个 Celery 任务,该任务在使用时会调用调用 socketio.emit() 的方法。但是,由于在 javascript 客户端中未收到任何消息,因此消息似乎并未实际发送。我的直觉告诉我,由于 Celery worker 在单独的进程中运行,被调用的 socketio.emit() 方法不会发送到连接的客户端,尽管对象存在于内存中的同一位置。服务器正在运行 gevent,Celery 正在接收并完成日志中看到的任务。此外,我已经验证了 socketio.emit() 正在被 Celery worker 调用,并且我已经验证了当直接调用任务时,绕过 Celery,socketio 按预期工作。当 socketio 在单独的进程中被 celery 任务引用时,关于如何让 socketio 正确通信的任何想法?

最佳答案

您是否忘记添加 message_queue ?

socketio.init_app(app, message_queue='redis://localhost:6379/0')

关于python - 从异步 celery worker 发出的 SocketIO 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25342141/

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