php – 如何使用Laravel的块来避免内存不足?
发布时间:2020-12-14 19:45:57 所属栏目:大数据 来源:网络整理
导读:我从临时表中提取了大约100k的记录,对数据进行了一些细微的修改,下载了照片,然后将我需要保存的字段保存在“主”表中.这很快导致我的应用程序因内存不足而崩溃. 我阅读了关于使用chunk()和Laravel雄辩的ORM的非常简短的文档,但是不知道如何在我的课堂上开始
我从临时表中提取了大约100k的记录,对数据进行了一些细微的修改,下载了照片,然后将我需要保存的字段保存在“主”表中.这很快导致我的应用程序因内存不足而崩溃.
我阅读了关于使用chunk()和Laravel雄辩的ORM的非常简短的文档,但是不知道如何在我的课堂上开始实现它. 这是我目前正在做的事情: public function fire() { // Turn off query logging DB::connection()->disableQueryLog(); $feeds = RetsFeed::where('active','=',1)->get(); foreach ($feeds as $feed) { $class = "TempListing{$feed->board}"; $listings = $class::orderBy('MatrixModifiedDT','desc')->get(); $listings->each(function($listing) use ($feed) { ListingMigrator::migrateListing($listing,$feed); echo "Feed: $feed->boardrn"; echo "SubcondoName: $listing->SubCondoNamern"; echo "Development: $listing->Developmentrn"; echo "rn"; }); } } 每个提要(或数据源)都被转储到不同家务中的临时表中.这很好.然后,我从一个表中获取所有hte列表(平均大约30k)并运行我的ListingMigrator方法. 在这个例子中我把块放在哪里?它会取代这条线: $listings = $class::orderBy('MatrixModifiedDT','desc')->get(); 我并不完全理解雄辩文档中的结束.这就是他们要说的全部内容,这里是Laravel网站的代码示例: User::chunk(200,function($users) { foreach ($users as $user) { // } });
块调用应该替换get调用 – 它被设计为处理pre-get()查询构建器对象.
$listings = $class::orderBy('MatrixModifiedDT','desc'); $listings->chunk(200,function($listings) use($feed) { $listings->each(function($listing) use ($feed) { ListingMigrator::migrateListing($listing,$feed); echo "Feed: $feed->boardrn"; echo "SubcondoName: $listing->SubCondoNamern"; echo "Development: $listing->Developmentrn"; echo "rn"; }); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 用Groovy思考 第一章 用Groovy简化Java代码
- delphi – 我应该期待Indy Imap SASL连接能够工作吗?
- 在Delphi XE2中可能有什么破坏?
- 19.2.27 [LeetCode 96] Unique Binary Search Trees
- [VB.NET]自定义控件与使用该控件的文件应该怎样放置才对哪?
- java – @Cacheable是否意识到’Thundering Herd’的问题
- VB.NET中基于声卡和DirectX的虚拟仪器设计
- django-模板之for empty(十一)
- 基于rt-thread+lwip源码分析-LWIP的IP层数据处理代码解析(
- 机器学习中的相似性度量