私はしばしば、削除されたものについて誰かに電子メールを送信しなければならなかった。問題は、非同期で電子メールを書き込むと、電子メールが生成される前にオブジェクトが削除されていることです。破壊されたオブジェクトに関する非同期電子メールを送信する
私は通常、sidekiqが示唆するように、パラメータとして整数と文字列を追加します。私はこのことについて考えた:
mail = MyMailer.some_mail(recipient_id, deleted_object_id)
mail.delay.deliver
をしかし、これはどちらか推奨されません。は私も2他のオプションを検討してきた
インスタンスのメソッドを遅らせる避けたが、私はそれを好きではありませんまったく。
- 使用acts_as_paranoid、記録にdeleted_atフィールドを設定する代わりに、DBから削除します。
- 、電子メールの本文をレンダリングDBに保存し、これを解決するpropperの道に後で
任意の提案を送信しますか?
あなたはメールを送信する必要がありますか?あなたが確認しなければならないオプションである場合、おそらく編集的なことは良い選択です。しかし、通知するだけの場合は、テキストのみを保存するオプションがあると思います(メール本体またはそのようなもの) – inye
最初のオプションを使用して、3日ごとまたは毎週実行するようにジョブをスケジュールすることができますそのジョブは、 'deleted_at <= 1.week.ago'を持つレコードを検索し、古いレコードを削除します。 – fanta