laravel 隊列實例(二)

導語

代碼部分完成後,接下來是配置 Supervisor,用來進程守護。當隊列意外中止後,Supervisor 能夠重啓進程,保證隊列的穩定運行。php

安裝以及配置

  1. 依次執行 yum install python-setuptoolseasy_install supervisor 進行安裝
  2. 建立 /etc/supervisor/ 目錄,並生成默認配置文件

配置文件

  1. 參考 Homesteadsupervisor.conf 文件進行修改,最終以下
[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0700                 ; socket file mode (default 0700)

;[inet_http_server]         ; inet (TCP) server disabled by default
;port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
;username=user              ; (default is no username (open server))
;password=123               ; (default is no password (open server))

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB        ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10           ; (num of main logfile rotation backups;default 10)
loglevel=info                ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

[include]
files = /etc/supervisor/conf.d/*.conf
  1. 建立 /etc/supervisor/conf.d 目錄,配置 laravel-worker.conf 文件以下
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /usr/local/nginx/html/myLaravel/artisan queue:work
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/log/supervisor/laravel-worker.log

啓動

  1. supervisord -c /etc/supervisor/supervisor.conf 啓動服務
  2. 依次執行 supervisorctl rereadsupervisorctl updatesupervisorctl start laravel-worker:*

一個插曲,有報錯 error: <class 'socket.error'>, [Errno 113] No route to host: file: /usr/lib64/python2.7/socket.py line: 571,最終的解決辦法是帶上配置文件 supervisorctl -c /etc/supervisor/supervisor.conf rereadhtml

  1. 查看一下狀態

查看狀態

狀態正常,測試結果也是正常的。python


參考資料:配置 supervisosupervisor 安裝配置使用nginx

相關文章
相關標籤/搜索