Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 芹菜如何执行任务_Django_Celery - Fatal编程技术网

Django 芹菜如何执行任务

Django 芹菜如何执行任务,django,celery,Django,Celery,在我的项目中,我有一个芹菜任务,芹菜节拍每30秒向工人发送一次。我想知道芹菜是如何执行芹菜任务的?它是为每个任务生成一个新线程还是为该任务生成一个新工作线程。我们如何知道任务是否已完成并已从我正在使用RabbitMQ的message broker队列中删除。芹菜工作人员不断轮询芹菜队列以执行任务。可以在芹菜配置文件中配置每个工作进程的工作进程数和进程数(并发性)。 Celerybeat调度器扫描Celerybeat数据库,并将任务添加到队列中,这些任务将被执行。然后,任何空闲工作人员从队列中提取

在我的项目中,我有一个芹菜任务,芹菜节拍每30秒向工人发送一次。我想知道芹菜是如何执行芹菜任务的?它是为每个任务生成一个新线程还是为该任务生成一个新工作线程。我们如何知道任务是否已完成并已从我正在使用RabbitMQ的message broker队列中删除。

芹菜工作人员不断轮询芹菜队列以执行任务。可以在芹菜配置文件中配置每个工作进程的工作进程数和进程数(并发性)。 Celerybeat调度器扫描Celerybeat数据库,并将任务添加到队列中,这些任务将被执行。然后,任何空闲工作人员从队列中提取任务并执行该任务,并将其标记为已读

       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队列(包含到期的任务)

芹菜工人不断轮询芹菜队列以执行任务。可以在芹菜配置文件中配置每个工作进程的工作进程数和进程数(并发性)。 Celerybeat调度器扫描Celerybeat数据库,并将任务添加到队列中,这些任务将被执行。然后,任何空闲工作人员从队列中提取任务并执行该任务,并将其标记为已读

       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)

日历队列(包含到期的任务)

它有大量空闲的工作线程等待任务到达,因此不需要为每个传入任务生成新的工作线程/线程。谢谢…我们可以通过为任务创建新线程来控制此行为。每个芹菜工作线程都有自己的进程,每个工作线程一次只执行一个任务,因此不需要线程。至少我无法想象如何以及为什么。哦,我可能错了。请参阅芹菜文档的这一部分:它有大量空闲的工作人员等待任务到达,因此它不需要为每个传入任务生成新的工作人员/线程。谢谢…我们可以通过为任务创建新线程来控制此行为。每个芹菜工作人员都有自己的进程,每个工作人员一次只执行一个任务,所以没有需要线程。至少我无法想象如何以及为什么。哦,我可能错了。请参阅芹菜文档的这一部分:我们如何配置芹菜中的工人数量和进程数量您可以查看此文档我们如何配置芹菜中的工人数量和进程数量您可以查看此文档