Celery如何执行任务

时间:2017-10-30 12:30:22

标签: django celery

在我的项目中,我有一个Celery任务,每隔30秒就由Celery发送给工作人员。我有兴趣了解芹菜如何执行芹菜任务?它是为每个任务生成一个新线程还是为该任务生成一个新工作线程。如何完成任务并从我正在使用RabbitMQ的消息代理队列中删除。

1 个答案:

答案 0 :(得分:0)

Celery工作人员继续轮询芹菜队列以执行任务。可以在celery配置文件中配置每个worker的worker数和进程数(并发)。 Celerybeat调度程序扫描celerybeat db并将任务添加到将要执行的队列中。然后,任何自由工作人员从队列中获取任务并执行任务并将其标记为已读

       Celery (*Manages number of workers)
Worker1      Worker2 (Reads task from celery queue and creates process for execution)
W1-P1 W1-P2    W2-P1 W2-P2 (executes the task)

Celerybeat (polls for tasks, adds due tasks to celery-queue)

calery-queue(包含应付的任务)