如何在laravel中停止可排队的工作

时间:2019-03-26 10:55:21

标签: php laravel

我正在laravel中进行可排队的工作,它的工作很好,并且可以完美地使用工作发送电子邮件,但是 我给了5条记录来发送电子邮件,因此,电子邮件发送到了这5个电子邮件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。

enter image description here

像这样的循环不会停止,而是继续将邮件发送到给定的电子邮件ID

谢谢。

1 个答案:

答案 0 :(得分:0)

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

gcc

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