我正在运行带有celery的Django应用程序,以运行应该每天运行一次的定期任务,但是问题是它每天运行两次。
我的任务继承自PeriodicTask类,并使用以下属性每天运行一次:
run_every = crontab(小时= 1,分钟= 1)
我们有两个队列:
在我的CELERY_ROUTES变量中,我没有将任务分配给队列。
我们还定义了两个芹菜工人,如图所示。两者都明确提到了slow_queue。
我是否需要使用CELERY_ROUTES变量将我的任务显式路由到队列,以防止其执行两次?
芹菜工人: 图片:$ {REGISTRY} / random-django-project:$ {TAGNAME}
command: celery worker -A config.celery_config -l ${LOGLEVEL} -X slow_queue --hostname=worker@%h -O fair --autoscale=12,4 privileged: true env_file: env.${ENVIRONMENT} restart: unless-stopped labels: tier: backend io.rancher.scheduler.affinity:host_label: tier=backend io.rancher.container.pull_image: always
celeryworker-slow: 图片:$ {REGISTRY} / random-django-project:$ {TAGNAME}
command: celery worker -A config.celery_config -l ${LOGLEVEL} -Q slow_queue --hostname=worker-slow@%h -O fair --autoscale=12,4 privileged: true env_file: env.${ENVIRONMENT} restart: unless-stopped labels: tier: backend io.rancher.scheduler.affinity:host_label: tier=backend io.rancher.container.pull_image: always