我使用的是 docker-compose 部署业务。整体是 一个 nginx 容器,做负载均衡 一个 web 容器, --scale web=10 ,直接启动了 10 个,有 nginx 容器做负载均衡,fastapi 后端 一个 celery 容器,和 web 用的一样代码 一个 redis 容器,没有什么用,只是连接内部网络,给 celery 调用
现在启动以后 请求是调用了 delay(),但是 celery 收不到请求。
调用就是在 fastapi 里面简单的把 celery 的函数引用过来了。无法直接使用。请问有合适的教程或者有能帮忙讲讲具体怎么做的朋友们吗~
1
djangovcps 90 天前
要看下 celery 的配置,或者你先在 ipython 中导入 task delay 试试能不能发送出去
|
2
maocat 89 天前 via iPhone
看看队列里的消息有没有,再看看 celery 启动的时候注入了这个方法了没有
|
3
lesterholy 89 天前 via iPhone
1 你的 celery 容器启动的应该是 worker 吧
2 你代码里有定义队列名字吗 如果定义了 启动 worker 的时候也要同样启动相同的队列 3 delay 调用的应该是 task 听你这意思 你的 task 是否有 @task 类似这样的装饰器呢 没有具体代码 实在无法定位问题 建议脱敏以后 贴贴关键代码 或者问问 Claude 之类的 ai |
4
drwebco 88 天前 via Android
celery 如果新添加了一个任务,你的数据库会有一条数据,看你用什么保存列队。
如果没有,可能初始化不对,或者调用方法不对,如果数据库有,而不执行,检查消费者程序启动了没有 |
5
pioflight 86 天前
worker 和 web service ,容器分开,不然后期够得你受
|