晚安
Porblem 1 .-
我需要为每个创建的事件发送超过1000封电子邮件,为此我使用队列(如Laravel的文档所述),但在发送电子邮件时,我必须等到所有电子邮件都发送回到视图控制小组
这是发送电子邮件的NewsEvents.php控制器中的“存储”功能
public function store(Request $request)
{
$attributes = request()->validate(News::$rules, News::$messages);
$news = $this->createEntry(News::class, $attributes);
//queue for sending emails
$this->dispatch(new Nevent($news));
return redirect_to_resource();
}
作业“Nevent.php”的“句柄”功能
public function handle()
{
//
$users=User::where('tipo_user','user')->get();
foreach($users as $user)
{
$user->notify(new EventCreated($this->news));
echo 'enviado correo';
Informe::create([
'event_id' => $this->news->id,
'total' => '1',
'tipo' => 'invitacion',
'dst_id' => $user->id,
'estado' => 'correcto',
]);
}
}
可能是什么问题?
问题2 .-
我怎么能每分钟发送一封电子邮件? 因为在发送所有电子邮件时,我的服务器回复了这条消息:
域mu.edu.fi已超过每小时允许的最大电子邮件数(100/100(100%))。消息将在稍后重新尝试
答案 0 :(得分:1)
如果您使用Redis服务器来管理作业,Laravel提供了一个简单的工作 限速API的API
Redis::throttle('your job id')->allow(10)->every(60)->then(function () {
// Job logic...
}, function () {
return $this->release(10);
});
希望这有帮助。