我有一个laravel应用程序,可以发送电子邮件给所有用户。现在我想允许200电子邮件每20分钟,以避免“违反政策”从我的电子邮件供应商。
我读过这个指南:https://laravel.com/docs/7.x/queues#job-但是如何在我的系统中实现中间件呢?
我将redis与horizon结合使用,并通过以下方式发送消息:
Notification::send($usersCollection, new EmailMessage());
class EmailMessage extends Notification implements ShouldQueue{
use Queueable;
public function toMail($notifiable)
{...}
}
我已经添加了一个处理功能,但它不工作,电子邮件是在一次发送
public function handle()
{
Redis::throttle('email')->allow(1)->every(1000)->then(function () {
// send email to subscriber
logger($this->email);
}, function () {
// could not obtain lock, retry this job in 5 seconds.
return $this->release(5);
});
}
暂无答案!
目前还没有任何答案,快来回答吧!