php - 如何在laravel中停止排队的工作
问题描述
我正在 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 artisan cache:clear
然后检查日志文件并修复错误并再次运行队列。
推荐阅读
- wordpress - 在内部将 Google App Engine 上的 Wordpress 与 CloudSQL 连接起来
- python - 尝试根据用户输入从字典中打印特定的键和值
- c# - Oracle.EntityFrameworkCore 5.12.3 - CLOB 返回为 null
- checksum - 互联网中出现位故障的概率
- python - 如何将“matplotlib”添加到 readthedocs.yaml 或 requirements.txt?
- python - 将保存的 EfficientDet 模型 saved_model.pb 转换为 tflite 格式失败
- python - 如何使用python从另一个窗口读取文本
- python - 缺少数据的 2D 图像中的曲线拟合
- c++ - 实现可打印类而不支付 iostream 编译费用?
- c++ - 创建新的原始数据类型的最佳方法是什么?