【发布时间】:2018-01-14 07:04:31
【问题描述】:
有时当我将大型数据集发送到作业时,我的队列工作人员突然退出。
// $taskmetas is an array with other arrays, each subsequent array having 90 properties.
$this->dispatch(new ProcessExcelData($excel_data, $taskmetas, $iteration, $storage_path));
ProcessExcelData 作业类使用 box/spout 包创建一个 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
第二个示例 - 使用大型数据集进行队列输出:
forge@user:~/myapp.com$ php artisan queue:work --tries=1
[2017-08-07 03:18:47] Processing: App\Jobs\ProcessExcelData
Killed
我没有收到任何错误消息,日志为空,并且作业没有出现在 failed_jobs 表中,与其他错误一样。时间限制设置为 1 小时,内存限制设置为 2GB。
为什么我的队列突然退出?
【问题讨论】:
-
你有没有设法解决这个问题?
-
@DaveCarruthers nope
-
Killed来自 OS/shell 可能内存不足。与stackoverflow.com/q/20520194/4233593 几乎相同的问题