2016-09-27 68 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列来决定是否应重试该工作。