ホームページ  >  記事  >  バックエンド開発  >  他のページのループの現在の進行状況を取得する良い方法

他のページのループの現在の進行状況を取得する良い方法

WBOY
WBOYオリジナル
2016-06-23 14:26:06903ブラウズ

タイトルが少し一般的かもしれませんが、要件は次のとおりです。
グループメール機能があります。場合によっては、何百人もの顧客に大量に送信されるため、何百回も回覧する必要があります。同時に、この送信の進捗状況をリアルタイムで確認し、送信されたメールの数を動的に表示するページもあります。プロセス ID はメールを送信するたびに異なります。
表示ページの現在の処理ロジックは、ajax を介してメール テーブル内のこのプロセスに属する ID の総数を定期的にクエリし、表示するページに戻ることです。これはあまりにも非効率的だと感じます。何度も送信して確認してください。他に良い方法はありますか?
ループ内のSessionに現在のループ数を書き込んで、Sessionの値を直接読み取るページを表示してみましたが、毎回最終結果が表示されてしまいます。
私は php スレッドについてはまだあまり知りません。お知らせ下さい。


ディスカッションへの返信 (解決策)

memchche またはその他のキャッシュは便利ですか? ループ スクリプトにキャッシュを記述します。ページの ajax リクエストのバックグラウンド読み取りキャッシュを表示します。 html5のlocalStorageを試してみます。大丈夫かどうかはわかります。


普通のやり方では、良い方法はありません。ポスターによって複雑になることはお勧めしません。リアルタイム性はそれほど高くありませんが、プロジェクトの要件を満たすには十分な進捗状況を取得するために、引き続き ajax + データベースを使用することをお勧めします。マルチスレッドを使用して電子メールを送信すると、はるかに効率的になります。

それ以外の場合は、マルチスレッドを使用せず、より単純なものを使用してください。複数の php ファイルを http://localhost/xxx.php で起動して送信できます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。