2016-09-27 9 views
0

laravel --queueオプションとreservedカラム(mysqlを使用)とちょっと混乱しています。
の1- laravelのドキュメントでは述べているとおり、この例ではLaravelキューの優先順位と予約済み

php artisan queue:listen --queue=high,low 

を、高いキュー上のジョブは常に低いキューからジョブに移動する前に を処理されます。

私はhighジョブと複数のlowジョブを持っているとします。ジョブhighが発砲し、問題が原因で60秒後に再度発射するキューに戻されました。この時期に何が起こるのですか?ジョブlowは開始されるかどうか

2- queue:work --daemonqueue:listenのように機能しますか?私はそれがlistenのようなすべての仕事を処理するのでしょうか?

3についてはreservedの列は?

答えて

0
  1. 私はここでしか推測することができますが、私はhighジョブがlowも前に再試行されるだろうと仮定します。そのため、ワーカーを実行するときにtries=3(or whatever)フラグを使用するか、public $tries = 5;をジョブクラスに追加する必要があります。または、より細かい制御のためにInteractsWithQueue形質を利用することもできます。

  2. queue:workコマンドを使用すると、後でLaravelのバージョンがデフォルトでデーモンモードで実行されると思います。デーモンワーカープロセスは、新しいジョブごとにフレームワーク全体を再起動する必要がないため、長く存続し、より高速に動作します。 queue:listenコマンドは、最新の(5.4)バージョンのドキュメントにも記載されていません。このコマンドによって生成されたワーカーは、すべてのジョブポーリングの前に再起動します。個人的には、デーモンワーカーを実行しているときにメモリに問題があるため、これを使用します。

  3. この列は、特定のジョブの実行が開始されたときにマークする方法です。 queue.php設定ファイルでは、接続がジョブを再試行するタイミングを指定できます。私は接続がreserved列を見て再試行する必要があるかどうかを決定すると思う。

関連する問題