小编tee*_*ran的帖子

Laravel 中的队列通知延迟

我尝试使用 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

0
推荐指数
1
解决办法
2266
查看次数

标签 统计

laravel ×1