laravel通过schedule命令遍历数据库中的所有数据

ogq8wdun  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(334)

我正在寻找一个有效的方法,通过所有用户的记录,检查一个条件,如果条件满足我需要发送一封电子邮件。
这项任务每天在某个特定的时间完成。所以cron作业将在后台运行。
现在我正在填充数据库的所有记录,并使用for循环检查条件。现在还可以。但我不认为这是数据开始增长时的最佳解决方案。
使用limit获取整个数据库数据有什么想法吗?

yrwegjxp

yrwegjxp1#

如果您有很多记录,请使用chunk:https://laravel.com/docs/5.7/queries#chunking-结果

DB::table('users')->orderBy('id')->chunk(100, function ($users) {
    foreach ($users as $user) {
        //
    }
});
ubbxdtey

ubbxdtey2#

解决方案是laravel队列。您可以检查所有数据,以及条件是否匹配dispatch并延迟将邮件发送到队列的过程。教程1

相关问题