在我的項目,我使用的數據庫隊列,然後由作曲家使用命令如何在後臺運行Laravel 5.2的隊列監聽器?
php artisan queue:listen
執行此隊列,它是工作。但在我的Windows服務器中,有許多使用隊列的項目打開了許多作曲家的窗口。這是相當不方便的。這可能在沒有composer窗口打開的情況下在後臺運行這個命令嗎?
在我的項目,我使用的數據庫隊列,然後由作曲家使用命令如何在後臺運行Laravel 5.2的隊列監聽器?
php artisan queue:listen
執行此隊列,它是工作。但在我的Windows服務器中,有許多使用隊列的項目打開了許多作曲家的窗口。這是相當不方便的。這可能在沒有composer窗口打開的情況下在後臺運行這個命令嗎?
您可以使用此命令,但它的工作只有等到您註銷或重新啓動
nohup php artisan queue:work --daemon &
尾隨符號(&)導致進程在後臺啓動,這樣你就可以繼續使用外殼和不必須等到腳本完成。
的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 /匹配您的本地安裝。同樣,用戶設置對於您的安裝也是唯一的。
感謝您的回覆。我正在使用Windows服務器。我怎樣才能使用上述命令的Windows服務器? – manoos
您可以創建腳本來運行這些命令。並使用cron運行此腳本 –