首页 > 解决方案 > Python - 芹菜自动更新

问题描述

使用 celery 时你是如何发展的?似乎每次更改都需要重新加载,

我正在使用命令:

watchmedo auto-restart --directory=proj/ -p '*.py' --recursive --  celery -A proj worker --concurrency=1 --loglevel=INFO

cellery.py

from decouple import AutoConfig

cwd = os.getcwd()
DOTENV_FILE = cwd + '/proj/config/.env'


config = AutoConfig(search_path='DOTENV_FILE')

app = Celery('proj',
             broker=config('CELERY_BROKER_URL'),
             backend=config('CELERY_RESULT_BACKEND'),
             include=['proj.tasks'])


app.conf.update(
    result_expires=3600,
)


if __name__ == '__main__':
    app.start()

任务.py

from .celery import app


@app.task
def add(x, y):
    return x + y

标签: pythoncelery

解决方案


即使有这种重新加载的技术解决方案,我建议您在开发任务功能时不应该使用 celery 的东西,因为它只是一个功能!所以我在这里的方法是先完成功能并添加 celery 的东西,然后检查它是否与链中的任务、django 等其他东西很好地集成。如果你考虑单元测试,同样的技术将适用。


推荐阅读