我尝试使用 Laravel 队列延迟每个通知(或作业)。不过,通知不是一个接一个地延迟,而是立即应用于所有通知。但是,延迟仅适用于第一个通知,其余的通知将作为第一个消息同时发送出去。请问这个社区有人可以帮助我吗?
这是只获取被录取或被拒绝的申请人,然后单独通知他们的方法的一部分。不幸的是,我们使用的邮件服务器每 1 分钟最多只能发送 30 封电子邮件;因此,我需要使用排队来限制每 2 秒仅发送(不超过)1 封电子邮件。
foreach ($applications as $application)
{
$application_id = $application->id;
$admission = Admission::where('application_id', $application_id)->first();
if (empty($admission->admission_no) & $application->status === 5) {
$this->generateAdmissionNumber($application->id, $application->course_id);
$application->update(['done' => 1]);
$admissions = Admission::where('course_id', '=', $id)->get();
foreach ($admissions as $admission) {
$admission->update(['done' => 1]);
}
}
$application->done = 1;
$application->update();
$user = $application->users;
if ($user->notify_if_decision_is_made === 1)
{
$user->notify((new DecisionNotification($user))
->delay(Carbon::now()->addSeconds(2)));
}
}
Run Code Online (Sandbox Code Playgroud)
我按照指南进行操作,但仍然没有解决方案。我在这里查看了许多解决方案,但没有看到任何像这样的问题。
我QUEUE_CONNECTION=database在 .env 文件中进行设置,添加shouldQueue到 DecisionNotification 文件中,然后php …
laravel ×1