php-laravel-jobs多進程隊列管理器

yum 安裝
  todo yum install epel-release
yum install -y supervisor


easy_install的方式
yum install -y python-setuptools
easy_install supervisor
echo_supervisord_conf >/etc/supervisord.conf

vim /etc/supervisord.conf可以看到如下




在/etc/supervisord.d 中新建配置文件
[program:AllJob]
process_name=%(program_name)s_%(process_num)02d
command=php /xzfct_project/fct_v2/artisan queue:work --sleep=3 --daemon --tries=6 --timeout=60
autostart=true
autorestart=true
user=www
numprocs=6
redirect_stderr=true
stdout_logfile=/var/log/Queue.log


supervisorctl restart all 重啓
*

supervisorctl 是 supervisord的命令行客戶端工具

supervisorctl status:查看所有進程的狀態
supervisorctl stop es:停止es
supervisorctl start es:啓動es
supervisorctl restart es: 重啓es
supervisorctl update :配置文件修改後可以使用該命令加載新的配置
supervisorctl reload: 重新啓動配置中的所有程序



踩過的坑
1、unix:///var/run/supervisor/supervisor.sock no such file

     問題描述:安裝好supervisor沒有開啓服務直接使用supervisorctl報的錯

     解決辦法:supervisord -c /etc/supervisord.conf 
     重載配置:supervisorctl reload


2、command中指定的進程已經起來,但supervisor還不斷重啓

     問題描述:command中啓動方式爲後臺啓動,導致識別不到pid,然後不斷重啓,
     本人使用的是elasticsearch,command                       
      指定的是$path/bin/elasticsearch -d,踩到的坑


     解決辦法:supervisor無法檢測後臺啓動進程的pid,而supervisor本身就是後臺啓動守護進程,因此不用擔心這個

3、啓動了多個supervisord服務,導致無法正常關閉服務

    問題描述:在運行supervisord -c /etc/supervisord.conf 之前,
    我直接運行過supervisord -c /etc/supervisord.d/xx.conf                         ,導致有些進程被多個superviord管理,無法正常關閉進程。


解決辦法: 使用 ps -fe | grep supervisord 查看所有啓動過的supervisord服務,
kill相關的進程。

4.Another app is currently holding the yum lock; waiting for it to exit...


解決辦法 rm -f /var/run/yum.pid

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章