簡體   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