我认为这不是一个很新的问题。我就是找不到正确的答案。我正在尝试将Celery用于后台任务,同时使用Django Rest Framework实现后端。我有一个Redis服务器。
Celery正在与一起正常工作
celery worker -A my_project --loglevel=info
但是,如果我使用此命令,它将不起作用。我该如何保持这种状态?我发现了一个supervisor
的博客。我只是想知道做这件事的标准是什么(以及更容易(。
您应该做的是使用docker并为您的服务使用docker-compose
。但如果你只是在测试东西:
$ nohup celery worker -A my_project --loglevel=info &
&
用于将进程带到后台,您可以使用fg
调用它,使用Ctrl + Z
将它挂起到bg,nohup
确保即使关闭ssh
会话,芹菜仍能正常工作。
编辑:使用此方法的唯一缺点是,如果进程退出,则必须再次调用它。在生产环境中,您应该选择docker和docker compose。