首页 > 解决方案 > 在 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 中设置非常容易。Laravel 开箱即用地支持其中的几个。我建议你从数据库开始,然后尝试 beanstalk 等。

最后,更重要的是,使用像 Supervisor 这样的流程管理器来监控和维护您的队列工作人员......

查看https://laravel.com/docs/5.7/queues以获得更多信息。干杯。


推荐阅读