本文大部分是拷贝,同时自己也出现了一些问题给于解决。
supervisor
安装
先安装 Python 的 easy_install,再通过 easy_install 安装 supervisor
yum install python-setuptools
easy_install supervisor
(尝试过用yum 安装 总是有些乱七八糟不懂的问题,索性卸载 用python安装了)
配置文件
生成配置文件,并建立相应目录,管理 supervisor 启动进程
(输入echo_supervisord_conf 可以验证是否安装成功)
echo_supervisord_conf > /etc/supervisord.conf
mkdir -p /etc/supervisor/conf.d/
编辑 /etc/supervisord.conf,修改 [include] 区块内容:
(其他的内容并不需要动)
[include]
files = /etc/supervisor/conf.d/*.conf
这样, supervisor 会加载 /etc/supervisor/conf.d/ 下的所有 .conf 文件
自启动暂时没有处理成功,服务器版本是centos 6.7 github上的是7.0版本的支持
新建 /etc/supervisor/conf.d/laravel-work.conf 文件
[program:laravel-work]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/your/artisan queue:work redis --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=www
numprocs=1
redirect_stderr=true
stdout_logfile=/path/to/your/job/storage/logs/queue.log
这里需要注意的问题是文件名和头部[program:XXX]一定要一致 不然加载不到!
laravel框架相关配置:
- .env文件中对于队列驱动的设置
QUEUE_DRIVER=redis
- config/queue.php 下对于队列connections的配置
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => 90,
],
相关总结:
启动的时候需要用-c参数 来指定conf文件路径
reload的方法用来重启,当你修改了job file 之后需要处理
文件写入出现问题之后要看进程数量是否符合预期,多的 kill -9 即可