繁体   English   中英

Aws sns 不适用于 Laravel 排队通知

[英]Aws sns not working with Laravel queued notifications

我有一个 Laravel 6.0 项目使用 ses 驱动程序发送电子邮件。

为了跟踪退回、投诉等,我使用 sns。

所有配置都已到位。 如果发送邮件,则 Amazon 会正确生成 sns 消息并由 Laravel 接收。 这是因为在 config/service.php 中有 ConfigurationSetName 值。

当涉及到由 email 发送的排队通知时,问题就开始了。

仅对于此类生成的 email,sns 工作流甚至都不会启动。 根本没有通知。 为了确定 ConfigurationSetName 已设置,我仔细检查了配置的 sintax,但它看起来不是或者 Laravel 忽略了它。

我再说一遍,当涉及到简单的电子邮件时,一切正常。 只有当电子邮件是从排队的通知中生成时,我才会遇到这个问题。

任何帮助将不胜感激,我真的不知道问题出在哪里。

最后我发现了问题,即使我不了解情况。

关键是我如何实现 ShouldQueue 合约。

我在通知 class 本身上设置了 ShouldQueue,而不是在可邮寄的 class 上。 所以 Laravel 会触发一个排队的通知。 一旦队列工作人员提出详细说明,通知就会生成一个 Mailable。 这不起作用,根本没有 SNS 通知。

现在我在 Mailable class 上移动了 ShouldQueue 实现,这解决了问题。

因此,现在 Laravel 触发生成排队的 Mailable 的通知。 当队列工作人员获得详细信息时,将发送 email 并且现在 SNS 工作正常。

代码中没有其他更改,只需将 ShouldQueue 的实现从 Notification 移至 Mailable 即可。

我想知道为什么......但现在它可以工作了,对我来说实施似乎很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM