Python 芹菜不';当工作人员从服务启动时,不能执行多个任务

Python 芹菜不';当工作人员从服务启动时,不能执行多个任务,python,celery,celery-task,Python,Celery,Celery Task,我的PythonFlask应用程序支持一些长时间运行的任务,这些任务是使用其他一些系统的API或CURL调用调用的 当我通过手动将以下命令输入终端来执行该命令时,效果非常好 芹菜工人-A manage.芹菜--loglevel=info-f log/芹菜.log 现在,我想为服务器创建一个服务,如果系统重新启动,这个芹菜工人应该自己启动。但是,当从服务执行以下命令时,它不会从队列中接收任何新任务 芹菜工人-A manage.芹菜--pool=solo--loglevel=info-f log/芹

我的PythonFlask应用程序支持一些长时间运行的任务,这些任务是使用其他一些系统的API或CURL调用调用的

当我通过手动将以下命令输入终端来执行该命令时,效果非常好

芹菜工人-A manage.芹菜--loglevel=info-f log/芹菜.log

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

芹菜工人-A manage.芹菜--pool=solo--loglevel=info-f log/芹菜.log

我可以看到CURL调用击中了服务器,但底层任务并没有在芹菜中开始


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

在服务文件中写入的命令中有一个问题。我在服务文件中的命令是
cellery worker-A manage.cellery--pool=solo--loglevel=info-f log/cellery.log

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

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


可以从中深入了解执行池。

我建议您将它们分开。它们是相关的,但最终是不同的。你要做的就是把你的设置复杂化。我可以为您推荐一个shell/批处理脚本,例如(*nix):
服务重启flaskapp;服务重启芹菜
。请记住,重新启动芹菜时,当您向其发送
ctrl-c(SIGINT)
Celly时,芹菜将完成当前手头的作业,并且在退出后不再承担任何作业(这也适用于烧瓶)。所以,如果你的剧本放弃芹菜和烧瓶,然后启动它们,它会很好地工作。已经有。。。也就是说,如果您已经使用了supervisor,只需为工作进程添加一个supervisor conf就可以了。