等待当前任务在停止芹菜之前完成

问题描述 投票:0回答:1

我创建了一个运行celery的systemd进程。我将并发性设置为1,因为我需要执行在先进先出(FIFO)队列中运行的任务。

如果我需要停止芹菜进行维护,如何使芹菜等待当前正在运行的任务完成后再停止?我不希望它等待整个队列完成。我只需要celery等待当前任务完成运行,然后celery自身停止。

这是我的系统服务文件

[Unit]
Description=celery daemon
After=network.target

[Service]
User=<username>
Group=<group>
WorkingDirectory=/path_to_django_project/project_name
ExecStart=celery -A project_name worker --concurrency=1

[Install]
WantedBy=multi-user.target
django redis celery systemd django-celery
1个回答
0
投票

这就是正在发生的事情。 -当您启动正常关闭时,Celery worker将从队列中退订,等待其自己的worker进程执行的任务完成,然后将其关闭。

此外,您的ExecStart行不正确。并发设置可以通过-c--concurrency进行设置。这是来自工人帮助的报价:

-c并发,--concurrency并发处理队列的子进程数。默认值为系统上可用的CPU数量。

并发性等于1似乎是错误的,除非运行Celery worker的计算机是单核。

© www.soinside.com 2019 - 2024. All rights reserved.