0

フォーム入力を処理するページがあります。それはいくつかのことを行い、いくつかの電子メールを送信し、クライアントを別のページにリダイレクトします。物事はうまくいきます。

電子メールの送信が遅いという問題があり、2通の電子メールを送信する必要がある場合、応答時間は許容できません。クライアントを結果ページにリダイレクトしてから、メールを送信したいと思います。残念ながら、redirect()CodeIgniterの呼び出しは実行を終了します。

302リダイレクトを実行し、スクリプトの実行を続行できるようにする方法はありますか?

302リダイレクトヘッダーがフラッシュアウトされることが重要です。接続を閉じてもかまいませんが、必須ではありません。電子メールの送信が完了するのを待つ必要がないように、電子メールが送信される前にユーザーがリダイレクトされることが重要です。

4

1 に答える 1

2

メッセージキューを使用する方が、ゾンビプロセスをそこに置くよりも適切だと思います。基本的に、このアクションが実行されると、電子メールの本文、宛先、件名などを含むジョブキューにジョブをダンプします。次に、このキューを2分ごとに読み取り、送信するようにcronジョブを設定します。電子メールを送信します。

また、AmazonのSimple Queue Service(http://aws.amazon.com/sqs/faqs/#What_can_I_do_with_Amazon_SQS)のようなものをSimple E-Mail Serviceと一緒に使用して、スケーラブルなソリューションを作成することもできます。

于 2012-04-28T11:42:30.437 に答える