laravel - 在 Laravel 中延迟邮件有多可靠?
问题描述
我想通过邮件通知卖家,买家即将到来(提货时间前约 2 小时)。
我通常会用 CRON 和数据库表来做这件事。如果我发现取件时间减去 2 小时的订单,则每小时检查一次,然后才将邮件发送出去。
现在,我想知道您是否会推荐使用队列作业来发送邮件。
和
$when = now()->addDays(10); //I would dynamically set the date
Mail::to($order->seller())
->later($when, new BuyerIsComing($order));
我可以延迟发送排队的电子邮件。
但这有多安全?特别是,如果有人在订购东西但正在取货,让我们夸大两个月?
Laravel 排队系统是否足够严格,可以在长时间延迟(即 2 个月)后正常运行?
编辑
我正在使用 Redis 进行排队
解决方案
你其实没什么好担心的。发送邮件通常会增加应用程序的响应时间,因此延迟发送是件好事。
队列是要走的路,在 Laravel 中设置非常容易。Laravel 开箱即用地支持其中的几个。我建议你从数据库开始,然后尝试 beanstalk 等。
最后,更重要的是,使用像 Supervisor 这样的流程管理器来监控和维护您的队列工作人员......
查看https://laravel.com/docs/5.7/queues以获得更多信息。干杯。
推荐阅读
- r - R Diff函数:处理每组的第一个值
- git - git push 仅在远程连接时挂起
- c# - 了解循环内变量的局部函数捕获
- mongodb - MongoDB Atlas 辅助分片保持空闲
- python - 来自 HTTPRequestHandler 的请求问题
- c# - .Net Core 3.1 Entity Framework - 将现有表结构复制到另一个模式
- rest - WCF Rest 服务和 protobuf-net
- azure - 如何使用 Microsoft.WindowsAzure.Storage.Table 的 TableOperators.Not 运算符
- javascript - 我需要将 disabled 属性添加到那些值等于使用 ejs 从我的 mongoDatabase 返回的值的复选框
- android - 更新 Google Ads SDK 后 onAdFailedToLoad 已弃用,如何解决?