把芹菜放在码头上

2021-12-08 06:17:03 发布

您现在位置:Python中文网/ 问答频道 /正文

试图在docker上为芹菜添加自动重新加载, 由于我需要开发和测试任务,配置中的更改 我想有自动重新加载选项,而不需要每次重新加载码头工人

在搜索之后我去了watchmedo但它不起作用, 仍然需要在每次更改时重新加载docker

请参见撰写文件:

worker:
  build:
    dockerfile: DockerfileCelery
    context: .
  command: watchmedo auto-restart --directory=./ --pattern=*.py --recursive -- celery worker --app=worker.celery --loglevel=info --logfile=logs/celery.log
  volumes:
     - ./multi/celery_app:/usr/src/app
  environment:
     - CELERY_BROKER_URL=redis://redisjson:6379
     - CELERY_RESULT_BACKEND=redis://redisjson:6379
  depends_on:
    - redisjson
    - ws

非常感谢您的帮助

########################################## ##########################################

更新:

仍然不起作用

我运行一个虚拟环境(Ubuntu)

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()

tasks.py

from .celery import app


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


将芹菜纺成:

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

它正在运行,工作人员正在处理任务。 但是,如果在tasks.py中进行更改,则不重新加载。 我需要重启芹菜