即使队列/并发已被占用,Celery也应在通话时执行任务

时间:2020-01-26 14:16:04

标签: celery django-celery celery-task celerybeat

  • 我在Django中有一个celery应用程序,其中我以特定的间隔定义了所有定期执行的明智任务。

  • 我已经用5 concurrency

  • 来启动芹菜工作者

celery -A appname worker --loglevel=info -B -c 5

  • 现在定义的每个任务都会定期执行,不会间隔时间,并且如果存在的活动任务超过5个,则会排队。

  • 现在,我想定义一个任务,以便它在每次调用时都应执行。不管排队还是什么。

send_task('task_name',[],get_task_kwargs)
  • 每当我打电话给send_task时,它都应立即执行,而不会因芹菜工作者的并发而排队。

1 个答案:

答案 0 :(得分:0)

没有任何方法可以确保在调用任务时任务将运行。您能做的最好的就是将此特定任务分配给它自己的队列。这样,只要前面没有其他相同类型的任务,它将始终开始执行。