程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 解決session死鎖的方法

PHP 解決session死鎖的方法

編輯:關於PHP編程

今天在開發碰到個棘手的問題 。
當異步請求後台處理一個大數據量操作時  請求其他控制器都沒返回信息了。。起初以為是Ext 框架設置了ajax同步造成的。
後來發現時session 死鎖造成其他控制器在等待session 完成後才能操作。(主要是用戶登錄判斷需要更新session)
當PHP 處理大數據量操作時 不能及時操作完成 這時候又有訪問其他控制器或者
異步請求時候會造成session 死鎖現象
和同事探討了下 可使用 session_write_close() 解決此問題
復制代碼 代碼如下:
Description
void session_write_close ( void )
End the current session and store session data.
Session data is usually stored after your script terminated without the need to call session_write_close(), but as session data is locked to prevent concurrent writes only one script may operate on a session at any time. When using framesets together with sessions you will experience the frames loading one by one due to this locking. You can reduce the time needed to load all the frames by ending the session as soon as all changes to session variables are done.

功能: 結束當前的session 操作 保存session 數據 
說的很明白了, 當腳本請求沒有調用session_write_close(); 時雖然 session  的數據是存儲住了。但是 session Date(也就是session 文件) 是鎖住狀態
是為了避免 其他應用此時操作session 造成不必要後果   當使用框架時 不同文件可能會不停地操作session 為了不造成其他操作對當前session 的死鎖等待
可使用此函數...

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved