使用 Supervisor 配置 Laravel 運行隊列處理器

配置 Supervisor

Supervisor 的配置文件一般位於 /etc/supervisor/conf.d 目錄下。在該目錄中,能夠建立任意數量的配置文件,用來配置 supervisor 如何監控進程。例如,建立一個 laravel-worker.conf 文件啓動和監控 queue:work 進程:php

# [program:x] 配置:
# 格式爲「program」單詞,加一個英文冒號,加自定義的程序名稱。如 `[program:foo]`,上下文中可以使用表達式 %(program_name)s 引用程序名稱。
[program:laravel-worker]

# 指定進程的命名規則:foo_00,foo_01...
process_name=%(program_name)s_%(process_num)02d

# command 必須。程序啓動後執行的命令,能夠是絕對命令,也能夠是相對命令(在環境$PATH中搜索可執行文件)。受控的程序自己不該該是守護程序。
command=php /home/forge/app.com/artisan queue:work sqs --sleep=3 --tries=3

# Supervisor 啓動時自動啓動該程序
autostart=true

# 指定進程掛掉時 Supervisor 自動重啓進程
autorestart=true

# 指定運行進程使用的用戶,須要 Supervisor 以root用戶運行。使用 setuid 切換用戶,不會啓動shell程序和改變環境變量
user=forge

# 運行和監控的進程數量,進程位於laravel-worker組內,指定該值需同時設置process_name包含%(process_num)s
numprocs=8

# 將 stderr 錯誤輸出重定向到 stdout 標準輸出
redirect_stderr=true

# 將進程的 stdout 標準輸出寫入文件中,設爲NONE不會建立任何日誌文件。
stdout_logfile=/home/forge/app.com/worker.log

啓動 Supervisor

配置文件建立完畢後,能夠使用以下命令更新 Supervisor 配置並啓動進程:html

# 重載守護進程的配置文件
sudo supervisorctl reread

# 從新加載配置並根據須要添加/刪除,並將從新啓動受影響的程序
sudo supervisorctl update

# 啓動指定的程序組
sudo supervisorctl start laravel-worker:*

參考:http://supervisord.org/config...laravel

相關文章
相關標籤/搜索