我在Laravel的日程安排中遇到问题。允许的内存大小为8589934592字节穷尽
我看到有一个关于此错误重复的问题,但这些不解决我的问题
[email protected]:/var/www/vhosts/trafficshield.tools/httpdocs# /opt/plesk/php/7.1/bin/php artisan schedule:run Running scheduled command: Closure ^[[15~PHP Fatal error: Allowed memory size of 8589934592 bytes exhausted (tried to allocate 4096 bytes) in /var/www/vhosts/trafficshield.tools/httpdocs/vendor/laravel/framework/src/Illum inate/Database/Eloquent/Model.php on line 279 PHP
此计划目的是依靠我们服务的所有campains的一切来访。
$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的内存效率很差。我会给你一个方法,坚持 – aaron0207
只是一种思想:如果被困在无限循环中,你经常会用尽内存...... – Greg
@Greg我相信没有无限循环。 – Pixel