第一步:安装supervisor
yum install -y epel-release 或者 apt-get -y install epel-release
yum -y install supervisor 或者 apt-get -y install supervisor
第二步:重启supervisor服务
systemctl restart supervisord
第三步:添加定时任务
crontab -u www -e
加入下面代码:
* * * * * cd /www/wwwroot/www.xxxx.com && php80 artisan schedule:run >> /www/wwwroot/www.xxxx.com/storage/logs/cron.log 2>&1
* * * * * cd /www/wwwroot/www.xxxx.com && php80 artisan schedule:run >> /www/wwwroot/www.xxxx.com/storage/logs/cron.log 2>&1
* * * * * cd /www/wwwroot/www.xxxx.com && php80 artisan schedule:run >> /www/wwwroot/www.xxxx.com/storage/logs/cron.log 2>&1
#*/5 * * * * cd/www/wwwroot/www.xxxx.com && php80 artisan sendmenu >> /www/wwwroot/www.xxxx.com/storage/logs/cronmenu.log 2>&1
第四步:重启定时任务
service crond restart
第五步:添加supervisor配置进入cd /etc/supervisord.d目录
添加文件vim region-dividend-queue.ini
加入下面代码
[program:region-dividend-queue]
process_name=%(program_name)s_%(process_num)02d
command=php80 /www/wwwroot/www.xxxx.com/artisan queue:work --queue regionDividendSettle
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www
numprocs=4
redirect_stderr=true
stdout_logfile=/www/wwwroot/www.xxxx.com/storage/logs/region-dividend-queue.log
stopwaitsecs=3600
添加文件vim region-dividend-subscribe.ini
加入下面代码
[program:region-dividend-subscriber]
process_name=%(program_name)s_%(process_num)02d
command=php80 /www/wwwroot/www.xxxx.com/artisan sulian:plugin.region-dividend.subscribe
autostart=true
autorestart=true
numprocs=4
#startsecs=4
user = www
stderr_logfile=/www/wwwroot/www.xxxx.com/storage/logs/region-dividend-subscribe-error.log
stdout_logfile=/www/wwwroot/www.xxxx.com/storage/logs/region-dividend-subscribe-exec.log
redirect_stderr = true
stdout_logfile_backups = 10
stopwaitsecs=3600
添加文件vim team-dividend-queue.ini
加入下面代码
[program:team-dividend-queue]
process_name=%(program_name)s_%(process_num)02d
command=php80 /www/wwwroot/www.xxxx.com/artisan queue:work --queue teamDividendSettle
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www
numprocs=4
redirect_stderr=true
stdout_logfile=/www/wwwroot/www.xxxx.com/storage/logs/team-dividend-queue.log
stopwaitsecs=3600
添加文件vim team-dividend-subscriber.ini
加入下面代码
[program:team-dividend-subscriber]
process_name=%(program_name)s_%(process_num)02d
command=php80 /www/wwwroot/www.xxxx.com/artisan sulian:plugin.team-dividend.subscribe
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www
numprocs=4
redirect_stderr=true
stdout_logfile=/www/wwwroot/www.xxxx.com/storage/logs/team-dividend-subscriber.log
stopwaitsecs=3600
注意:配置文件里面stdout_logfile文件需要提前手动创建
第六步:重启supervioserd服务
service supervioserd restart 或者 systemctl restart supervisord
第七步:项目根目录运行消息队列
sh dividend.sh
成功之后使用ps -ef | grep queue 命令可以看到如下信息就可以了
www 1768577 1768576 0 Mar16 ? 00:01:10 php /xxxxx/artisan queue:work --queue regionDividendSettle
www 1768578 1768576 0 Mar16 ? 00:01:10 php /xxxx/artisan queue:work --queue regionDividendSettle
www 1768579 1768576 0 Mar16 ? 00:01:11 php /xxxx/artisan queue:work --queue regionDividendSettle
www 1768580 1768576 0 Mar16 ? 00:01:10 php /xxxx/artisan queue:work --queue regionDividendSettle
www 1768585 1768576 0 Mar16 ? 00:00:12 php /xxxxxx/artisan queue:work --queue=handsettle --sleep=5
www 1768586 1768576 0 Mar16 ? 00:00:12 php /xxxxx/artisan queue:work --queue=handsettle --sleep=5
www 1768587 1768576 0 Mar16 ? 00:00:12 php /xxxxx/artisan queue:work --queue=handsettle --sleep=5
www 1768588 1768576 0 Mar16 ? 00:00:12 php /xxxxx/artisan queue:work --queue=handsettle --sleep=5
www 1768589 1768576 0 Mar16 ? 00:01:10 php /xxxxx/artisan queue:work --queue teamDividendSettle
www 1768590 1768576 0 Mar16 ? 00:01:10 php /xxxxx/artisan queue:work --queue teamDividendSettle
www 1768591 1768576 0 Mar16 ? 00:01:10 php /xxxx/artisan queue:work --queue teamDividendSettle
www 1768592 1768576 0 Mar16 ? 00:01:10 php /xxxx/artisan queue:work --queue teamDividendSettle
root 2948362 2941248 0 17:32 pts/0 00:00:00 grep --color=auto queue
如果启动失败使用如下命令检测:
supervisord -c /etc/supervisord.conf
开机启动服务
systemctl enable supervisord
验证是否开机启动
systemctl is-enabled supervisord
柔性重启客户端
supervisorctl reload
supervisorctl start all
查看状态客户端
supervisorctl status
客户端根据最新的配置文件,启动新配置或有改动的进程
supervisorctl update
关闭客户端
supervisorctl stop all
ps aux | grep supervisord
kill pid