簡體   English   中英

Laravel 郵件應該隊列與作業應該隊列

[英]Laravel Mail ShouldQueue vs Job ShouldQueue

好的,所以我得到了 ShouldQueue 的想法,它可以讓應用程序運行得更流暢。

但我不明白的是,使用帶有ShouldQueue 的Mailable 與使用帶有ShouldQueue 的Job 之間的區別。

如果我使用帶有 ShouldQueue 的 Mailable 並像往常一樣發送郵件,郵件會排隊,然后應該由工作人員發送。

如果我將 Job 與 ShouldQueue 一起使用,它會做同樣的事情,但會增加 1 個類(感覺有點多余)。 所以在我的用例中,使用 Job 似乎是在浪費時間?

誰能告訴我使用 Job over Mailable 有什么好處? :)

當您使用ShouldQueue合同調度 Job 時,它將被添加到隊列中(如果未指定default隊列)。 在這個流程執行過程中,當你創建一個具有相同合約的Mailable時,它會被排入同一個隊列或另一個隊列。

在大多數情況下,您的問題的答案是它取決於

例如:

  • 如果您必須使用需要大量時間執行的特定邏輯來調度作業,並且當此任務結束時,您必須通知大量用戶,那么答案是將作業和 Mailable 放入隊列,然后在 2不同的隊列。
  • 如果您只需要通知用戶,請對作業進行排隊並直接發送 Mailable。
  • 如果您必須通知用戶重置密碼並且您只有幾個密碼重置請求,請直接發送 Mailable。
  • .....

恕我直言,好處取決於您必須做什么。 通常,您必須完成的任務越多,就需要更多的隊列。 無論如何,最好使用隊列來向用戶返回簡單、快速的響應並單獨處理其余部分。

例如,如果用戶注冊成功,但是mailable 拋出錯誤,它會在failed_job_table上創建一個記錄,而不告訴用戶他/她的注冊失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM