Laravel批量邮件队列(除以数量和时间)

Laravel批量邮件队列(除以数量和时间),laravel,laravel-queue,laravel-mail,Laravel,Laravel Queue,Laravel Mail,我有一个日程安排系统,它可以发送带有每个系统成员各自日历的电子邮件 我的邮件列表显著增加(超过800个收件人),我的电子邮件提供商正在生成某种限制,比如SMTP tarpitting 我想我可以将所有这些收件人拆分成小包裹发送,也就是说,我可以使用Mail::queue() 重点是: 是否有任何方法可以每隔一段时间添加队列,例如10分钟,并且始终添加在队列末尾,即使有新的邮件包 我的想法是(我不知道这是否是最好的解决方案),以总数为例,800除以150,这将产生5次互动,在这5次互动中,每10分

我有一个日程安排系统,它可以发送带有每个系统成员各自日历的电子邮件

我的邮件列表显著增加(超过800个收件人),我的电子邮件提供商正在生成某种限制,比如SMTP tarpitting

我想我可以将所有这些收件人拆分成小包裹发送,也就是说,我可以使用
Mail::queue()

重点是: 是否有任何方法可以每隔一段时间添加队列,例如10分钟,并且始终添加在队列末尾,即使有新的邮件包


我的想法是(我不知道这是否是最好的解决方案),以总数为例,800除以150,这将产生5次互动,在这5次互动中,每10分钟发送25封电子邮件。(25 X(60/10)X 5==750)。

您可以将所有邮件扔到队列中,然后将队列配置为在给定时间执行特定的数量(这需要redis):


所以,你可以专注于你在做什么,而不是你是如何做的哇,多酷,听起来是个很好的主意,我不知道这个功能。我会做阅读,非常感谢。我想“可能”我没有正确理解操作。我复制了代码,做了一些修改,但基本上都是相同的代码<代码>Redis::throttle('email')->allow(1)->every(25)->then(函数(){\Mail::to('customer@company.com')->send(new-MailableOrderShipped());},function(){return$this->release(25);})。根据我的理解,every()方法是时间间隔,allow()是一次的最大数量,但是release()方法是什么呢?在这种情况下,我希望每25秒发送一封电子邮件。
release
就是针对这种情况,laravel无法获得锁。所以,当您的
允许。。。每个
都不起作用,您可以在发布上指定应该发布多少项。