php - 拉维尔 5.1 : Difference between Event and Mail:queue?

标签 php laravel laravel-5

我有注册表单,我想在用户注册成功后向其发送电子邮件。我想在后台运行电子邮件,以便页面的响应时间更好一些。

对于后台电子邮件,我看到我们可以使用:

  • EventShouldQueue
  • mail::queue() 方法。

我的问题是,在排队电子邮件的情况下,上述两种方法有什么区别?通过队列发送电子邮件时,一个人的行为是否与其他人不同?

最佳答案

当应用程序运行时,您可能会有事件(例如 UserHasLoggedIn)被监听器拾取,这些监听器可能会执行 AddEntryToAuditLog 等操作。重要的是它们在调用 Laravel 期间开始和结束,之后没有什么可做的。 http://laravel.com/docs/5.0/events

作业是 Laravel 完成执行后可能需要完成的事情,因为它需要延迟(一天后的后续电子邮件)或需要很长时间(例如准备托管文件的 zip 备份)。这些作业使用 Laravel 的提供程序或外部队列提供程序放入队列中。队列负责监视挂起的作业并根据它们到达的顺序和任何调度要求运行它们。 http://laravel.com/docs/5.0/queues

有一些交叉。事件可以触发监听器并注册作业。例如。 userRequestedBackup 事件触发 - 监听器拾取事件以发送通知电子邮件,并且作业排队以压缩准备发送的文件。 http://laravel.com/docs/5.0/events#queued-event-handlers

关于php - 拉维尔 5.1 : Difference between Event and Mail:queue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33500523/

相关文章:

php - 定点类型 - "exact value or not"?

css - 我可以在 laravel 中为 2 个部分使用 2 个 Bootstrap 吗?

PHPDoc 与 Laravel

php - 在网页上显示Mysql查询结果

javascript - 我无法使用 javascript 通过 ajax 将内容发布到 php

php - MySqli 命令不同步;你现在不能运行这个命令

laravel - 将多个相同名称转换为一个名称,并且值在laravel中得到总和

php - Composer : required packages with differing levels of minimum-stability

laravel - @mdi/js 不适用于 Laravel 9 Vuetify 3

php - Laravel Blade 通过@include 使用字符串传递变量会导致错误