Laravel Cron 使用 For 循环

问题描述 投票:0回答:1

我正在使用 Laravel cron,每 1 分钟运行一次。我在文件中使用循环向每个用户发送消息。有时它会向用户发送多条消息。我想知道将 for 循环与 Laravel cron 结合使用的最佳方法是什么。我正在使用 laravel/framework": "5.5.*

我已经在使用 withoutOverlapping() 方法。但有时它会向同一用户而不是每个用户发送重复的消息。可能循环运行两次。我使用的是循环计时,这意味着一旦一项任务完成,它将根据每个用户自动安排在第二天。这就是循环检查并相应工作的内容。每一分钟循环后将为用户重复相同的任务。

laravel foreach cron
1个回答
0
投票

更有可能的是,您可能已经运行了脚本几次,但它们仍在运行,这就是您收到重复电子邮件的原因。

尝试重新启动服务器和 mysql,然后这将停止处理之前的所有进程。

对于处理大循环的代码,最好使用这样的 laravel chunk 函数

$data = User::latest('id')
->select('id', 'first_name', 'last_name', 'email', 'age')
->where('age', '>', '5')
->chunk(50, function($results) {
    foreach ($results as $result) {
        // send email here
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.