当工作人员从服务开始时,芹菜不会执行多项任务

Celery doesn't take multiple tasks when worker started from service

我的 Python Flask 应用程序支持一些长 运行 任务,这些任务是使用 API 或来自其他系统的 CURL 调用来调用的。

当我通过在终端中手动输入以下命令来执行它时,效果很好。

celery worker -A manage.celery --loglevel=info -f log/celery.log

现在,我想为服务器创建一个服务,如果系统重新启动,这个 celery worker 应该自行启动。但是,当从服务执行以下命令时,它不会从队列中获取任何新任务。

celery worker -A manage.celery --pool=solo --loglevel=info -f log/celery.log

我可以看到 CURL 调用命中了服务器,但底层任务并未在 celery 中启动。

知道如何解决这个问题吗?

在服务文件中编写的命令中存在问题。我在服务文件中的命令是 celery worker -A manage.celery --pool=solo --loglevel=info -f log/celery.log

然而,在终端上我使用了 celery worker -A manage.celery --loglevel=info -f log/celery.log 命令。这里没有使用--pool=solo,因此可以执行多个任务。

更新了服务文件中的命令,它也开始在那里执行多个任务。

对执行池的深入理解可以由此link.