web-dev-qa-db-ja.com

MailgunなどのAPIドライバーを使用している場合、Laravelでメールをキューイングしますか?

Laravel(私がv5.6を使用しているレコードの場合)には、バックグラウンド処理のためにメールをキューに入れるオプションがあります。

ユーザーに毎日メールアラートを送信するようにスケジュールされたジョブがあります。現在、ジョブはLaravelデータベースキューにメール(mailables)をドロップします。メールの送信にはMailgunドライバーを使用します。

私の質問は、Mailgunがドキュメントに従って配信用の電子メールを自動的にキューに入れることです( https://documentation.mailgun.com/en/latest/user_manual.html#message-queue

Laravelキューを使用してこれらの電子メールをキューに入れ、キューワーカーが別のキュー(Mailgunキュー)に送信するためだけにそれらを処理するようにしても、メリットはありますか?

これらの電子メールを送信するための正しいプロセスについて、ガイダンスやアドバイスをいただければ幸いです。

1
adam78

pdate:元々、この回答をあなたの側のキューを推奨するように書いていましたが、この他のキューもネットワーク内のサーバー上にあると思っていました。 Mailgunは、あなたが制御できない(私はそれらを使用したことも聞いたこともない)電子メールプロバイダーであるように見え、それに応じて私の回答を書き直しました。


外部サービスとやり取りする場合は、組織が直接制御することはできません。別のキューに電子メールを追加するためのキューを用意することは良い考えです。

Mailgunはダウンする可能性があります。速度が低下する可能性があります。サーバーとサーバーの間のネットワークが遅くなったり不安定になったりする可能性があります。または、サーバーとMailgunの間の他の都市の建設作業員がバックホーで少し不注意になり、光ファイバーケーブルを掘り起こした場合は完全に使用できなくなります。

この失敗のリスクがあるため、独自のキューを保持することを強くお勧めします。これにより、問題が発生した場合にこの外部サービスプロバイダーでの操作を再試行でき、それらの問題がWebアプリケーションにリークするのを防ぎます。

2
Greg Burghardt