Laravel 在每个用户的首选时间安排每日通知

Laravel Schedule daily notification for each user on their preferred time

我正在开发任务管理应用程序。 我需要在用户的首选时间发送每日报告通知。 我确实检查了 Laravel 功能,例如 Task Scheduling 等。但我没有找到正确的解决方案。 如果我想使用 Schedule 我必须编写一个包含所有用户的 foreach 并检查是否到了通知时间,每一分钟,这不会有效!

       //Not Efficient Code:
       $schedule->call(function (){
            foreach(User::all() as $user){
                if ($user->preferred_time == now()){
                    $user->notify(new Notification);
                }
            }
        }
        )->everyMinute();

您可以将循环放在计划之外,但我看不出这会如何提高效率:

foreach(User::all() as $user){

   $schedule->call(function() {
      // do stuff
   })->dailyAt($user->preferred_time);

}

我最终找到了这个包,它对我的​​情况有方便的解决方案:Laravel Snooze