使用supervisor后台运行celery

使用supervisor后台运行celery

  1. 安装supervisor
    pip install supervisor
    
  2. 生成配置文件
    echo_supervisord_conf > /etc/supervisord/supervisord.conf   # 可自己指定位置
    
    • echo_supervisord_conf 如果找不到该命令。 (其实在 pip 同目录)

      sudo find  / -name echo_supervisord_conf     # 找到路径
      sudo ln -s 命令路径 /usr/bin/echo_supervisord_conf  # 创建软连接完成
      
  3. 修改配置文件
    vim /etc/supervisord/supervisord.conf
    
    1. 修改最后几行
    
    [include]
    ;files = /etc/supervisor/conf.d/*.conf
    files = /etc/supervisord/*.conf              # 配置文件所在位置
    
    [program:celeryworker]                       # celeryworker 这个是进程的名字,随意起
    command=celery -A bookstore worker -l info   # 要运行的命令
    directory=/home/fhx/git_test1/bookstore/     # 运行命令的目录
    
    numprocs=1
    # 设置log的路径
    stdout_logfile=/var/log/supervisor/celeryworker.log   # 可以自己指定
    stderr_logfile=/var/log/supervisor/celeryworker.log
    autostart=true                                        # 意外退出,自动重启否
    autorestart=true                                      # 是否自动启动
    startsecs=10                                          # 自动重启间隔
    stopwaitsecs = 600
    priority=15
    user=root                                             # 进程执行的用户身份  根据实际情况使用
    
    2. 将配置文件中的 /tmp/ 替换为 /var/
    
    
  4. 使用配置文件启动supervisord
    supervisord -c /etc/supervisord/supervisord.conf     # -c 指定配置文件即可
    
    • supervisord 如果找不到该命令。 (其实在 pip 同目录)

      sudo find  / -name supervisord           # 找到路径
      sudo ln -s 命令路径 /usr/bin/supervisord  # 创建软连接完成
      
    • 端口占用报错, 使用下面命令即可搞定

      unlink /var/run/supervisor.sock
      # 或者
      unlink /tmp/supervisor.sock
      
  5. 查看运行状态
    supervisorctl status
    
    status       # 查看状态
    reread       # 读取配置信息
    update       # 加载最新的进程
    stop         # 停止进程
    start        # 启动进程
    reload       # 重新加载配置
    
    ps -ef|grep super
    ps -ef|grep celery 
    
  6. 控制启动的进程数量
    • 在配置文件最后,加上这两行即可。

      process_name=%(program_name)s_%(process_num)02d              ;多进程名称肯定不能相同,匹配多个
      numprocs=4                                                   ;启动N个进程
      
posted @ 2022-04-13 16:11  疯狂列表推导式  阅读(176)  评论(0编辑  收藏  举报