2016-08-24 9 views
3

は、私はデータベースのキューを使用して、作曲にコマンドバックグラウンドでLaravel 5.2のキューリスナーを実行するにはどうすればよいですか?私のプロジェクトで

php artisan queue:listen

を使用して、このキューを実行し、それが働いているのです。しかし、私のWindowsサーバーでは、キューを使用する多くのプロジェクトがあり、非常に多くのウィンドウのウィンドウが開いています。それはかなり不便です。これは、コンポーザーウィンドウが開いていない状態でこのコマンドをバックグラウンドで実行できますか?

コマンドを使用することができますが、それはあなたがログアウトするまでの間だけ動作するか

nohup php artisan queue:work --daemon & 

末尾にアンパサンド(&)はバックグラウンドで処理開始の原因となるので、あなたは、シェルを使用し続けなく行うことができますが再起動します

+0

これらのコマンドを実行するためのスクリプトを作成できます。このスクリプトを実行するにはcronを使用してください。 –

答えて

2

スクリプトが終了するまで待たなければなりません。

nohup

nohupを参照してください - あなたのディレクトリにnohup.outを受ける権利ファイルにこの意志の出力情報tty以外

に出力して、ハングアップにコマンドを実行して免疫をコマンドを実行します。出力に関心がなければ、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で聞くには、以下のプロセスを監視し、制御するための* nixのユーティリティがうまく機能/etc/supervisord.confの一部です。キューのsupervisord.confの

部:あなたが/インストール、ローカルに合うように//PATHを交換する必要があります

[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 

を聞きます。同様に、ユーザーの設定はインストールに固有のものになります。

+3

あなたの返事ありがとうございます。私はWindowsサーバーを使用しています。上記のコマンドをWindowsサーバーに使用するにはどうすればよいですか? – manoos

関連する問題