Laravel队列被"杀死"

Pet*_*ble 9 queue laravel laravel-5

有时,当我将大型数据集发送到作业时,我的队列工作人员突然退出.

// $taskmetas is an array with other arrays, each subsequent array having 90 properties.
$this->dispatch(new ProcessExcelData($excel_data, $taskmetas, $iteration, $storage_path));
Run Code Online (Sandbox Code Playgroud)

ProcessExcelData工作类创建使用Excel文件盒/口包.

  • 在第一个例子中$taskmetas有880行 - 工作正常
  • 在第二个例子中$taskmetas有10,000行 - 突然退出

第一个示例 - 使用小数据集的队列输出:

forge@user:~/myapp.com$ php artisan queue:work --tries=1
[2017-08-07 02:44:48] Processing: App\Jobs\ProcessExcelData
[2017-08-07 02:44:48] Processed:  App\Jobs\ProcessExcelData
Run Code Online (Sandbox Code Playgroud)

第二个示例 - 具有大型数据集的队列输出:

forge@user:~/myapp.com$ php artisan queue:work --tries=1
[2017-08-07 03:18:47] Processing: App\Jobs\ProcessExcelData
Killed
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误消息,日志为空,并且作业没有failed_jobs像其他错误一样出现在表中.时间限制设置为1小时,内存限制为2GB.

为什么我的队列突然退出?

小智 7

您可以尝试超时。例如。php artisan queue:工作-超时= 120

默认情况下,超时时间为60秒,因此我们如上所述强制覆盖超时