在后台运行芹菜工人

2024-09-30 03:24:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在经营这样一个芹菜工人:

celery worker --app=portalmq --logfile=/tmp/portalmq.log --loglevel=INFO -E --pidfile=/tmp/portalmq.pid

现在我想在后台运行这个worker。我尝试过几件事,包括:

nohup celery worker --app=portalmq --logfile=/tmp/portal_mq.log --loglevel=INFO -E --pidfile=/tmp/portal_mq.pid >> /tmp/portal_mq.log 2>&1 </dev/null &

但它不起作用。我查阅了芹菜文档,发现:

特别是,这一评论是相关的:

In production you will want to run the worker in the background as a daemon.
To do this you need to use the tools provided by your platform, or something
like supervisord (see Running the worker as a daemon for more information).

这对于在后台运行一个进程来说开销太大了。我需要在我的服务器上安装supervisord,并熟悉它。现在不行。有没有一种简单的方法让芹菜工人在后台工作


Tags: thelogappasrunningtmpdaemon后台
3条回答
celery worker -A app.celery --loglevel=info --detach

监督员非常简单,只需要很少的工作就可以安装,芹菜和监督员的组合也是如此

设置时间不应超过10分钟:)

  1. 使用apt get安装监控程序

  2. 创建/etc/supervisor/conf.d/celery.conf配置文件

  3. 将此粘贴到芹菜.conf文件中

    [program:celery]
    directory = /my_project/
    command = /usr/bin/python manage.py celery worker
    
  4. 加上(如果你需要)一些可选的和有用的东西(使用dummy) 价值观)

    user = celery_user
    group = celery_group
    stdout_logfile = /var/log/celeryd.log
    stderr_logfile = /var/log/celeryd.err
    autostart = true
    environment=PATH="/some/path/",FOO="bar"
    
  5. 重新启动supervisor(或重新读取supervisorctl;添加supervisorctl 芹菜)

之后,您可以使用nice ctl命令来管理芹菜流程:

supervisorctl start/restart/stop celery

supervisorctl tail [-f] celery [stderr]

我遇到了与惰性解决方案相同的问题,即在命令末尾使用&。 比如说

celery worker -A <app>.celery --loglevel=info &  

相关问题 更多 >

    热门问题