【发布时间】:2018-02-24 12:06:05
【问题描述】:
我在 Laravel 的日程安排上遇到了问题。
我发现有关于此错误的重复问题,但这些问题并不能解决我的问题
root@trafficshield:/var/www/vhosts/trafficshield.tools/httpdocs# /opt/plesk/php/7.1/bin/php artisan schedule:run 运行调度 命令:关闭 ^[[15~PHP 致命错误:允许的内存大小为 8589934592 字节用尽(试图分配 4096 字节) /var/www/vhosts/trafficshield.tools/httpdocs/vendor/laravel/framework/src/Illum inate/Database/Eloquent/Model.php 第 279 行 PHP
此时间表旨在统计所有活动对我们服务的访问次数。
$schedule->call(function () {
$campaigns = Campaign::all();
foreach ($campaigns as $campaign) {
$campaign->denied_visits = $campaign->visitsDenied->count();
$campaign->allowed_visits = $campaign->visitsAllowed->count();
$campaign->save();
}
})->everyFiveMinutes();
如何更改 PHP 代码以避免此问题?
配置:memory_limit : 8G
提前感谢您的帮助。
【问题讨论】:
-
更改
memory_limit将是一个临时修复,当数据量增加时问题又回来了,所以我建议你避免使用 Elloquent 来完成这项工作,因为 Elloquent 的内存效率很差。我会给你一个方法坚持 -
深思熟虑:如果陷入无限循环,您经常会耗尽内存...
-
@Greg 我确定没有无限循环。
标签: php postgresql laravel