zoukankan      html  css  js  c++  java
  • supervisor thinkphp6 qune

    1.supervisor的安装和配置

    yum安装supervisor

    # yum install epel-release
    # yum install supervisor
    
    //设置成开机自动启动
    # systemctl enable supervisord

    2.yum安装的目录在/etc/下产生两个文件

    supervisord.conf文件

    supervisord.conf.rpmsave文件

    supervisord.d文件夹

    3.配置

    在这里我创建了一个命名为supervisor的目录用于存放supervisor和队列的日志文件以及include的配置文件,其目录结构为:

    /var/supervisor/log/    #可以自定义
                   /run/    #可以自定义
                   /conf/   #可以自定义
    chmod -R 777 superviso --一定赋予权限,否则报错

    4.然后找到/etc/supervisord.conf配置文件,编辑如下信息

    ; 将supervisor.sock 的路径换成如下
    [unix_http_server]
    file=/var/supervisor/run/supervisor.sock   ; (the path to the socket file)
    
    ; 将supervisord.log 和 supervisord.pid 的路径换成如下
    [supervisord]
    logfile=/var/supervisor/log/supervisord.log  ; (main log file;default $CWD/supervisord.log)
    pidfile=/var/supervisor/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
    
    ; 将supervisor.sock 的路径换成如下
    [supervisorctl]
    serverurl=unix:///var/supervisor/run/supervisor.sock ; use a unix:// URL  for a unix socket
    
    ; 将最底部的files路径换成如下
    [include]
    files = /var/supervisor/conf/*.conf

    5.在/var/supervisor/conf目录里创建一个.conf文件,这里命名为queue_work.conf,内容如下:

    ---这个daemon错误  取消后正确
    [program:queue_worker] ;项目名称 directory = /opt/www/tp5.1 ; 程序的启动目录,项目根目录的上一级 command = php think queue:work --queue queueName --daemon ; 启动命令 queueName就是队列名 process_name=%(program_name)s_%(process_num)02d numprocs = 3 ; 开启的进程数量 autostart = true ; 在 supervisord 启动的时候也自动启动 startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了 autorestart = true ; 程序异常退出后自动重启 startretries = 3 ; 启动失败自动重试次数,默认是 3 user = root ; 用哪个用户启动 redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false stdout_logfile_maxbytes = 50MB ; stdout 日志文件大小,默认 50MB stdout_logfile_backups = 20 ; stdout 日志文件备份数 ; stdout 日志文件,需要手动创建目录(supervisord 会自动创建日志文件) stdout_logfile = /var/supervisor/log/queue_worker.log loglevel=info

    正确:

    [program:queue_worker] ;
    directory = /home/wwwroot/hewaMc ; 
    command = /usr/bin/php /home/wwwroot/hewaMc/think queue:work --queue recommendSms ; 
    process_name=%(program_name)s_%(process_num)02d ;
    numprocs = 3         ; 
    autostart = true     ;
    startsecs = 5        ;
    autorestart = true   ; 
    startretries = 3     ; 
    user = root          ; 
    redirect_stderr = true  ;
    stdout_logfile_maxbytes = 50MB  ;
    stdout_logfile_backups = 20     ; 
    ;stdout
    stdout_logfile = /var/supervisor/log/queue_worker.log ; 
    loglevel=info ; 

    对于index这个单模块而言,不同的业务逻辑为了区分可能会存在多个队列名,这种情况将多个队列名用逗号拼接起来:

    command = php think queue:work --queue queueName1,queueName2 --daemon ;

    6. 重启

    # systemctl stop supervisord
    # systemctl start supervisord

    # systemctl restart supervisord


    调用方法,成功写入数据库。

    netstat -lnp

  • 相关阅读:
    项目工作总结 (转)
    mysql-笔记 操作语句
    QTP自动化测试-excel sheet页数量过多--但是不能在qtp里被识别
    mysql-笔记 定义语句
    HDU
    CodeForces
    CodeForces
    CodeForces
    CodeForces
    CodeForces
  • 原文地址:https://www.cnblogs.com/yangzailu/p/13203037.html
Copyright © 2011-2022 走看看