У меня небольшая проблема. Я пытаюсь отправить электронное письмо каждому пользователю с его просроченными задачами. Я уже создал консольную команду, потому что я хочу сделать работу cron. У меня есть что-то вроде этого в моем методе handle:
public function handle()
{
$tasks = Task::where('due_at', '<', Carbon::now()->toDateString())->where('is_complete', Task::INCOMPLETE)->with('user')->get()->groupBy('user_id');
foreach($tasks as $task) {
foreach($task as $tasksUser) {
$this->emailService->sendOverdueTasks($task, $tasksUser->user->email);
}
}
}
Вот мой почтовый сервис:
public function sendOverdueTasks($tasks, $email)
{
Mail::send('emails.overdue', ['tasks' => $tasks, 'email' => $email], function ($message) use ($tasks, $email) {
$message->from(env('MAIL_FROM_ADDRESS'), env('MAIL_FROM_NAME'));
$message->subject(env('APP_NAME') . ' - Overdue tasks');
$message->to($email);
});
}
Но я пытаюсь отправить все письма одновременно или слишком быстро, и, думаю, это будет проблемой.Какое оптимальное решение для этого?