V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
endpain
V2EX  ›  Python

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

  •  
  •   endpain · 116 天前 · 1679 次点击
    这是一个创建于 116 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    5 条回复    2024-08-26 19:24:22 +08:00
    djangovcps
        1
    djangovcps  
       116 天前
    要看下 celery 的配置,或者你先在 ipython 中导入 task delay 试试能不能发送出去
    maocat
        2
    maocat  
       116 天前 via iPhone
    看看队列里的消息有没有,再看看 celery 启动的时候注入了这个方法了没有
    lesterholy
        3
    lesterholy  
       116 天前 via iPhone
    1 你的 celery 容器启动的应该是 worker 吧
    2 你代码里有定义队列名字吗 如果定义了 启动 worker 的时候也要同样启动相同的队列
    3 delay 调用的应该是 task 听你这意思 你的 task 是否有 @task 类似这样的装饰器呢
    没有具体代码 实在无法定位问题 建议脱敏以后 贴贴关键代码 或者问问 Claude 之类的 ai
    drwebco
        4
    drwebco  
       114 天前 via Android
    celery 如果新添加了一个任务,你的数据库会有一条数据,看你用什么保存列队。
    如果没有,可能初始化不对,或者调用方法不对,如果数据库有,而不执行,检查消费者程序启动了没有
    pioflight
        5
    pioflight  
       113 天前
    worker 和 web service ,容器分开,不然后期够得你受
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4909 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:46 · PVG 17:46 · LAX 01:46 · JFK 04:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.