当工作人员从服务开始时,芹菜不会执行多项任务
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.
我的 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.