【问题标题】:how to stop queueable job in laravel如何在laravel中停止排队的工作
【发布时间】:2019-03-26 19:19:10
【问题描述】:

我正在 laravel 中处理可排队的工作,它的工作正常,并使用工作完美地发送电子邮件,但是 我给了五个发送电子邮件的记录,所以,电子邮件发送到这五个电子邮件 ID,之后不停,但越来越多的时间发送电子邮件

 <?php

 namespace App\Jobs\Admin;

 use Illuminate\Bus\Queueable;
 use Illuminate\Queue\SerializesModels;
 use Illuminate\Queue\InteractsWithQueue;
 use Illuminate\Contracts\Queue\ShouldQueue;
 use Illuminate\Foundation\Bus\Dispatchable;

 use Illuminate\Http\Request;
 use Mail;

 class TempleteEmailJob implements ShouldQueue
 {
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

protected $emailinfo_data;
/**
 * Create a new job instance.
 *
 * @return void
 */
public function __construct($emailinfo_data)
{
    $this->emailinfo_data=$emailinfo_data;
}

/**
 * Execute the job.
 *
 * @return void
 */
public function handle(Request $request)
{
    $mail_data = $this->emailinfo_data;

    foreach ($mail_data as $key => $value)
    {
        $emails = [$value['email']];

        Mail::send('admin.templete.email', ['title' => $value], function($message) use ($emails)
        {    
            $message->to($emails)->subject('2');    
        });
    }
    return;
    }
}

mail_data 有一些发送电子邮件的数据,例如用户电子邮件 ID。

这样的循环不会停止并继续向给定的电子邮件 ID 发送邮件

谢谢。

【问题讨论】:

  • 清除你的作业表然后停止你执行的命令,如果你的代码有一些错误那么队列会无限工作。

标签: php laravel


【解决方案1】:

实际上,如果您的脚本在本地出现错误,则作业将一遍又一遍地重复,因此您必须停止队列然后输入命令:

php artisan cache:clear

然后检查日志文件并修复错误并再次运行队列。

【讨论】:

    猜你喜欢
    • 2018-11-12
    • 2020-12-23
    • 2022-10-20
    • 2020-11-06
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多