2016-09-27 95 views
0

我變得有點困惑與laravel --queue選項和reserved柱(用mysql)。
1-如laravel文檔已經指出:Laravel隊列優先級和保留

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

在這個例子中,在高隊列中的作業將總是被移動到作業從低隊列之前處理 。

可以說我有一個high工作和多個low工作。作業high被解僱,並且因爲問題在60秒後被推回隊列以再次觸發。這期間發生了什麼?沒有工作low開始或沒有?

2-是否queue:work --daemon工作就像queue:listen?我的意思是它處理所有的工作,如listen做什麼?

3-什麼是reserved列?

回答

0
  1. 我只能猜測在這裏,但我認爲high工作會前low那些重試。這就是爲什麼你要在運行時,工人使用tries=3(or whatever)標誌或添加public $tries = 5;到作業類。或者你可以利用InteractsWithQueue的特點來獲得更好的控制。

  2. 我相信,後來Laravel版本在默認情況下,守護進程方式運行,當您使用queue:work命令。守護進程工作進程的壽命長,工作更快,因爲他們不需要爲每個新工作重新啓動整個框架。最新的(5.4)版本文檔中甚至沒有記錄queue:listen命令。每次工作調查之前,由此命令產生的工作人員都會重新啓動。就我個人而言,我仍然使用它,因爲我在運行守護進程工時遇到了內存問題。

  3. 據我瞭解,這列是當特定作業開始執行,以紀念的方式。在queue.php配置文件中,您可以指定連接何時應該重試該作業。我認爲連接通過查看reserved列來決定是否應重試該工作。