芹菜工人 - 分离模式无法正确加载应用



我最初的问题是,当使用--detach标志运行celeni worker或使用celeni multi时,我的应用程序任务没有向worker注册(尽管worker确实启动并且可以访问,但这个问题也是一样的(。为了帮助调试这个问题,我制作了一个普通的芹菜应用程序,它有一个不同但可能相关的问题。

源结构

setup.py
example
| tasks.py
| celery.py
| __init__.py
| __main__.py

tasks.py:

from example.celery import app
@app.task
def add(x, y):
return x + y

celery.py

from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379', include=["example.tasks"])

init.py

__version__ = "0.0.1"
__package__ = "example"
from example.celery import app

setup.py

from setuptools import setup
import example
setup(
name=example.__package__,
version=example.__version__,
include_package_data=True,
python_requires=">=3.7",
)

使用安装程序包$ pip install -e .

我现在可以从系统中的任何地方运行$ celery -A example worker

我将有一个工人来完成添加任务。添加--分离标志,如下所示:$ celery -A example.celery.app worker --detach --logfile=$HOME/celery.log

当应用程序配置为使用Redis:时,尝试将AMQPLAIN连接到celery.log文件时会出现错误

...
amqp.exceptions.AccessRefused: (0, 0): (403) ACCESS_REFUSED - Login was refused using authentication mechanism AMQPLAIN. For details see the broker logfile.

所以我的理解是,当工作人员试图以分离模式加载芹菜应用程序时,会发生一些事情,但我不知道是什么。我们非常感谢任何协助。

使用芹菜==4.4.7

更新这适用于芹菜5.0.2,将打开一个bug票证。

这是我错过的一个已知错误。https://github.com/celery/celery/issues/6370

相关内容

  • 没有找到相关文章

最新更新