0

私のサイトに登録フォームがあります。フォームは AJAX 経由でサーバーに送信され、検証されます。次に、有効な情報として検証された場合、リダイレクト先のブラウザーのアドレスを出力します。PHP は、指定された電子メールに検証電子メールを送信します。問題は、電子メールの送信に 10 秒かかることです。ユーザーが [登録] を押してからリダイレクトされるまで 10 秒間待たせたくありません...

PHP がクライアントに情報が正しく検証されたことを伝え、リダイレクト URL を出力し、クライアントを待たずにメールを送信し続ける方法はありますか?

4

1 に答える 1

0

これをバックグラウンド ジョブと呼びます。

これを最も簡単な方法で行うには (注: ベストではありませんが、最も簡単です):

  1. 登録の詳細を何らかの形のデータベースに保存していると思います。このユーザーに検証メールを送信する必要があることを示す列を追加します。

  2. 別のスクリプトで、このフラグが設定された行がないかデータベースをチェックし、そこから電子メールを送信します。

  3. この 2 番目のスクリプトは、選択したスケジュールで、cronjob または同様のものによってトリガーされます。

これにより、ユーザーは 10 秒間待つ必要がなくなります。

大規模なサイトにうまく対応できる、より効率的な解決策がありますが、これを知る必要はまだないと思います。詳細を知りたい場合は、ジョブ キューを調べてください。

于 2012-12-08T14:14:28.393 に答える