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
我正在开发任务管理应用程序。
我需要在用户的首选时间发送每日报告通知。
我确实检查了 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