如何防止芹菜任务运行两次?

时间:2020-08-28 17:34:51

标签: celery django-celery celery-task

我正在运行带有celery的Django应用程序,以运行应该每天运行一次的定期任务,但是问题是它每天运行两次。

我的任务继承自PeriodicTask类,并使用以下属性每天运行一次:

run_every = crontab(小时= 1,分钟= 1)

我们有两个队列:

  • slow_queue
  • fast_queue

在我的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

0 个答案:

没有答案