簡體   English   中英

發送有關損壞對象的異步電子郵件

[英]Send async email about destroyed objects

在Rails中,我經常不得不向某人發送有關已刪除內容的電子郵件。 問題是,在異步編寫電子郵件時,在生成電子郵件之前已刪除對象。

我通常只添加整數和字符串作為參數,就像sidekiq所建議的那樣。 我考慮過這樣做:

mail = MyMailer.some_mail(recipient_id, deleted_object_id)
mail.delay.deliver

但這也不建議: 避免在實例上延遲方法


我還考慮了另外兩個選項,但我根本不喜歡它們。

  1. 使用acts_as_paranoid,在記錄上設置一個deleted_at字段,而不是從db中刪除。
  2. 渲染電子郵件正文,保存到數據庫並稍后發送

對解決此問題的正確方法有何建議?

當刪除一個對象並發送一封電子郵件如此緊密地結合在一起時,您可以創建一個可以同時完成這兩項工作的sidekiq作業。 因此,您只需向工作發送ID。 sidekiq作業刪除您的對象,並在該作業內同步發送電子郵件。 對於您的請求,郵件仍會異步發送。

暫無
暫無

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

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