Laravel队列超时

时间:2018-07-23 14:30:39

标签: php laravel ffmpeg

我正在使用该命令运行Laravel队列:

/usr/bin/php7.2 artisan queue:listen --timeout=0

但是此错误始终在300秒处停止:

Symfony\\Component\\Process\\Exception\\ProcessTimedOutException(code: 0): The process [...] exceeded the timeout of 300 seconds

我也尝试在job的班级设置超时时间:

public $timeout = 5000;

谁知道该怎么办?此过程是针对视频编码的,因此运行时间较长。

谢谢!

2 个答案:

答案 0 :(得分:0)

ProcessTimedOutException所示,Symfony进程实际上正在超时,而不是Laravel队列。如果您知道并期望该进程长时间运行(例如,视频处理),​​则将Process类中的timeout设置为null,以指示没有超时,如下所示:

...
$process = new Process($command);
$process->setTimeout(null);
...

答案 1 :(得分:0)

最好的方法,你需要单独的数据按页面推送到队列,而不是1个队列的大数据,我们有很多队列等待运行后台,如果你提高速度,你可以让多个作业cath队列。

  1. 按页面获取数据。
  2. 将页面推送到队列
  3. 作业将按页处理数据。如果您想提高速度,请让多个进程处理作业。