ホームページ  >  記事  >  バックエンド開発  >  セッションデッドロックを解決するための PHP メソッド_PHP チュートリアル

セッションデッドロックを解決するための PHP メソッド_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:05:021413ブラウズ

今日の開発中に難しい問題に遭遇しました。
大量のデータ量の操作をバックグラウンドで処理するために非同期リクエストが行われた場合、そのリクエストから他のコントローラーには情報が返されません。 。最初は、Ext フレームワークによって設定された ajax 同期が原因だと思いました。
後に、セッションがデッドロックになり、他のコントローラーが操作できるようになるまでセッションが完了するまで待機していたことが判明しました。 (主に、ユーザーがログインするときにセッションを更新する必要があるため)
PHP が大量のデータ量の操作を処理し、時間内に操作を完了できずに他のコントローラーにアクセスする場合、または
非同期リクエストによりセッションのデッドロックが発生する場合
同僚と話し合った。何が使えるか session_write_close() でこの問題を解決します

コードをコピー コードは次のとおりです:

説明
void session_write_close ( void )
現在のセッションを終了し、セッションデータを保存します。
セッションデータは通常保存されますスクリプトが終了した後は session_write_close() を呼び出す必要はありませんが、同時書き込みを防ぐためにセッション データがロックされているため、セッションでフレームセットを同時に使用すると、フレームが 1 つずつロードされることになります。このロックにより、セッション変数へのすべての変更が完了したらすぐにセッションを終了することで、すべてのフレームのロードに必要な時間を短縮できます。

機能: 現在のセッション操作を終了してセッション データを保存します。 、セッション データは保存されますが、スクリプト リクエスト (); 時には session_write_close は呼び出されません。ただし、セッションの日付 (つまり、セッション ファイル) はロックされた状態になっています。これは、フレームワークを使用しているときに、別のファイルがセッションを継続的に操作することによって引き起こされる不必要な結果を回避するためです。他の操作によって現在のセッションが破壊されないようにするには、ロック待機
この機能を使用できます...


http://www.bkjia.com/PHPjc/327721.html

tru​​ehttp://www.bkjia.com/PHPjc/327721.html技術記事今日の開発中に難しい問題に遭遇しました。 大量のデータを処理するために非同期リクエストがバックグラウンドで処理される場合、リクエストから他のコントローラーに情報は返されません。 。最初はExtフレームワークの設定かと思いました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。