2016-08-24 132 views
3

在我的項目,我使用的數據庫隊列,然後由作曲家使用命令如何在後臺運行Laravel 5.2的隊列監聽器?

php artisan queue:listen

執行此隊列,它是工作。但在我的Windows服務器中,有許多使用隊列的項目打開了許多作曲家的窗口。這是相當不方便的。這可能在沒有composer窗口打開的情況下在後臺運行這個命令嗎?

+0

您可以創建腳本來運行這些命令。並使用cron運行此腳本 –

回答

2

您可以使用此命令,但它的工作只有等到您註銷或重新啓動

nohup php artisan queue:work --daemon & 

尾隨符號(&)導致進程在後臺啓動,這樣你就可以繼續使用外殼和不必須等到腳本完成。

nohup

的nohup - 運行被掛起的命令,以輸出到非TTY

目錄的nohup.out有權這將輸出信息到一個文件,你運行命令。如果你對輸出沒有興趣,你可以將stdout和stderr重定向到/ dev/null,或者類似的,你可以把它輸出到正常的laravel日誌中。例如

nohup php artisan queue:work --daemon > /dev/null 2>&1 & 

nohup php artisan queue:work --daemon > app/storage/logs/laravel.log & 

對於但你也應該使用類似Supervisord,以確保服務保持運行後崩潰/失敗重新啓動。

運行隊列:與supervisord

supervisord聽是Unix和Linux實用程序來監視和控制過程下面是行之有效/etc/supervisord.conf的一部分。

supervisord.conf隊列部分:聽

[program:l5beauty-queue-listen] 
command=php /PATH/TO/l5beauty/artisan queue:listen 
user=NONROOT-USER 
process_name=%(program_name)s_%(process_num)d 
directory=/PATH/TO/l5beauty 
stdout_logfile=/PATH/TO/l5beauty/storage/logs/supervisord.log 
redirect_stderr=true 
numprocs=1 

你需要更換/ PATH/TO /匹配您的本地安裝。同樣,用戶設置對於您的安裝也是唯一的。

+3

感謝您的回覆。我正在使用Windows服務器。我怎樣才能使用上述命令的Windows服務器? – manoos