Laravel 拉威尔邮件自动化

Laravel 拉威尔邮件自动化,laravel,queue,jobs,Laravel,Queue,Jobs,我正在开发一个发票系统,以便向客户收取付款。创建发票后,将通过付款链接向客户发送一封包含发票详细信息的电子邮件。我希望重新生成支付令牌(一旦到期)并向客户发送更新的支付链接,并希望自动化该过程 我创建了一个名为RenewingVoiceLinks的作业,在handle方法中,我编写了代码来检索所有过期链接的发票,并创建新令牌和发送新链接。在App->Console->Kernel.php中按如下方式安排作业。我参考了Laravel文档,但没有正确地获得分派作业的流程 protected func

我正在开发一个发票系统,以便向客户收取付款。创建发票后,将通过付款链接向客户发送一封包含发票详细信息的电子邮件。我希望重新生成支付令牌(一旦到期)并向客户发送更新的支付链接,并希望自动化该过程

我创建了一个名为
RenewingVoiceLinks
的作业,在handle方法中,我编写了代码来检索所有过期链接的发票,并创建新令牌和发送新链接。在
App->Console->Kernel.php中
按如下方式安排作业。我参考了Laravel文档,但没有正确地获得分派作业的流程

protected function schedule(Schedule $schedule)
{
    $schedule->job(new renewingInvoiceLinks, 'renewingInvoiceLinks')->daily();
}
我想弄清楚的事情

  • 使用作业来完成要求是否正确?如果不是,那么什么是最好的方法呢

  • 如何分派工作?(我需要在哪里调用分派方法?)


  • 我认为这个问题相当主观和固执己见,但以下是我的做法:

  • 无论何时更新付款链接,我都会触发一个自定义
    PaymentLinkUpdated
    事件。您可以在更新链接的位置触发此事件,也可以在受影响的模型上侦听
    保存
    事件,并且仅当原始值与更新后的值不同时才触发
    PaymentLinkUpdated
    事件
  • 自定义事件侦听器将侦听付款链接的更新,并发送包含付款详细信息和链接的电子邮件。此事件监听器的设置应确保电子邮件在后台发送,并且不会阻塞UI
  • 计划作业将检查过期的付款链接,并更新受影响的记录,必要时引发
    PaymentLinkUpdated
    事件。这将触发步骤2(再次自动排队)

  • 这样,所有逻辑只实现一次,发送邮件不会重复。如果您必须在更新支付链接时发送不同的邮件,您可以在事件侦听器中这样做,或者您必须完全改变策略。

    我认为这个问题相当主观和固执己见,但我会这样做:

  • 无论何时更新付款链接,我都会触发一个自定义
    PaymentLinkUpdated
    事件。您可以在更新链接的位置触发此事件,也可以在受影响的模型上侦听
    保存
    事件,并且仅当原始值与更新后的值不同时才触发
    PaymentLinkUpdated
    事件
  • 自定义事件侦听器将侦听付款链接的更新,并发送包含付款详细信息和链接的电子邮件。此事件监听器的设置应确保电子邮件在后台发送,并且不会阻塞UI
  • 计划作业将检查过期的付款链接,并更新受影响的记录,必要时引发
    PaymentLinkUpdated
    事件。这将触发步骤2(再次自动排队)
  • 这样,所有逻辑只实现一次,发送邮件不会重复。如果您必须在更新支付链接时发送不同的邮件,您可以在事件侦听器中发送,也可以完全更改策略