ActionMailerのdeliver_nowとdeliver_laterの違い

ActionMailerのdeliver_nowとdeliver_laterの違い

ActionMailerを実装している中で、[deliver_now]メソッドと[deliver_later]メソッドがあり、両者の違いが分からなかった為、こちらにまとめます

[deliver_now]メソッド: 同期処理に送信される(ジョブの状態に関係なく、現時点ですぐにメールが送信される)
[deliver_later]メソッド: 非同期処理で送信される(現時点ですぐにメールが送信されずに、ジョブのキューにプッシュされる。ジョブが実行されていない場合は、メールが送信されない)


非同期処理:時間がかかってしまうような重い処理は、後でやる処理としてリスト化して登録する

Railsガイドには、以下のように記載してある

Image from Gyazo

参考記事

Action Mailer - Qiita

ruby on rails - アクションジョブ/メーラーの `deliver_now`と` deliver_later`の違い

Active Jobについて - Qiita