|
當(dāng)異步請(qǐng)求后臺(tái)處理一個(gè)大數(shù)據(jù)量操作時(shí) 請(qǐng)求其他控制器都沒(méi)返回信息了。。起初以為是Ext 框架設(shè)置了ajax同步造成的。
后來(lái)發(fā)現(xiàn)時(shí)session 死鎖造成其他控制器在等待session 完成后才能操作。(主要是用戶(hù)登錄判斷需要更新session)
當(dāng)php 處理大數(shù)據(jù)量操作時(shí) 不能及時(shí)操作完成 這時(shí)候又有訪問(wèn)其他控制器或者
異步請(qǐng)求時(shí)候會(huì)造成session 死鎖現(xiàn)象
和同事探討了下 可使用 session_write_close() 解決此問(wèn)題
復(fù)制代碼 代碼如下:
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.
功能: 結(jié)束當(dāng)前的session 操作 保存session 數(shù)據(jù)
說(shuō)的很明白了, 當(dāng)腳本請(qǐng)求沒(méi)有調(diào)用session_write_close(); 時(shí)雖然 session 的數(shù)據(jù)是存儲(chǔ)住了。但是 session Date(也就是session 文件) 是鎖住狀態(tài)
是為了避免 其他應(yīng)用此時(shí)操作session 造成不必要后果 當(dāng)使用框架時(shí) 不同文件可能會(huì)不停地操作session 為了不造成其他操作對(duì)當(dāng)前session 的死鎖等待
可使用此函數(shù)...
php技術(shù):PHP 解決session死鎖的方法,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。