我的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中启动。
关于如何解决此问题的任何想法?
答案 0 :(得分:0)
在服务文件中写入了命令中的问题。我在服务文件中的命令是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中深入了解执行池。