有时,当我将大型数据集发送到作业时,我的队列工作人员会突然退出。
// $taskmetas is an array with other arrays, each subsequent array having 90 properties.
$this->dispatch(new ProcessExcelData($excel_data, $taskmetas, $iteration, $storage_path));
The ProcessExcelData
job 类使用以下命令创建一个 excel 文件盒子/喷嘴 http://opensource.box.com/spout/docs/包裹。
- 在第一个例子中
$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。
为什么我的队列突然退出?
您可以尝试设置超时。
例如。
php artisan 队列:工作 --timeout=120
默认情况下,超时时间是60秒,所以我们强制覆盖上面提到的超时时间
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)