关于 fastapi + celery 使用 docker-compose 部署的疑惑

76 天前
 endpain

我使用的是 docker-compose 部署业务。整体是 一个 nginx 容器,做负载均衡 一个 web 容器, --scale web=10 ,直接启动了 10 个,有 nginx 容器做负载均衡,fastapi 后端 一个 celery 容器,和 web 用的一样代码 一个 redis 容器,没有什么用,只是连接内部网络,给 celery 调用

现在启动以后 请求是调用了 delay(),但是 celery 收不到请求。

调用就是在 fastapi 里面简单的把 celery 的函数引用过来了。无法直接使用。请问有合适的教程或者有能帮忙讲讲具体怎么做的朋友们吗~

1589 次点击
所在节点    Python
5 条回复
djangovcps
76 天前
要看下 celery 的配置,或者你先在 ipython 中导入 task delay 试试能不能发送出去
maocat
76 天前
看看队列里的消息有没有,再看看 celery 启动的时候注入了这个方法了没有
lesterholy
76 天前
1 你的 celery 容器启动的应该是 worker 吧
2 你代码里有定义队列名字吗 如果定义了 启动 worker 的时候也要同样启动相同的队列
3 delay 调用的应该是 task 听你这意思 你的 task 是否有 @task 类似这样的装饰器呢
没有具体代码 实在无法定位问题 建议脱敏以后 贴贴关键代码 或者问问 Claude 之类的 ai
drwebco
74 天前
celery 如果新添加了一个任务,你的数据库会有一条数据,看你用什么保存列队。
如果没有,可能初始化不对,或者调用方法不对,如果数据库有,而不执行,检查消费者程序启动了没有
pioflight
73 天前
worker 和 web service ,容器分开,不然后期够得你受

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1067329

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX