PHP 解決session死鎖的方法
更新時(shí)間:2013年06月20日 16:55:26 作者:
本篇文章是對(duì)PHP解決session死鎖的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
今天在開(kāi)發(fā)碰到個(gè)棘手的問(wèn)題 。
當(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 完成后才能操作。(主要是用戶登錄判斷需要更新session)
當(dāng)PHP 處理大數(shù)據(jù)量操作時(shí) 不能及時(shí)操作完成 這時(shí)候又有訪問(wèn)其他控制器或者
異步請(qǐng)求時(shí)候會(huì)造成session 死鎖現(xiàn)象
和同事探討了下 可使用 session_write_close() 解決此問(wèn)題
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ù)...
當(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 完成后才能操作。(主要是用戶登錄判斷需要更新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中session變量的銷毀
- PHP session有效期問(wèn)題
- 詳解php設(shè)置session(過(guò)期、失效、有效期)
- PHP中怎樣保持SESSION不過(guò)期 原理及方案介紹
- PHP中session使用方法詳解
- PHP會(huì)話控制:Session與Cookie詳解
- PHP Session變量不能傳送到下一頁(yè)的解決方法
- php Session存儲(chǔ)到Redis的方法
- PHP中SESSION的注銷與清除
- php基于session鎖防止阻塞請(qǐng)求的方法分析
- PHP session文件獨(dú)占鎖引起阻塞問(wèn)題解決方法
- PHP實(shí)現(xiàn)提高SESSION響應(yīng)速度的幾種方法詳解
相關(guān)文章
一個(gè)嚴(yán)格的PHP Session會(huì)話超時(shí)時(shí)間設(shè)置方法
這篇文章主要介紹了一個(gè)嚴(yán)格的PHP Session會(huì)話超時(shí)時(shí)間設(shè)置方法,著重點(diǎn)在于結(jié)合兩種方法保證超時(shí)時(shí)間到,會(huì)話失效,需要的朋友可以參考下2014-06-06php中mkdir()函數(shù)的權(quán)限問(wèn)題分析
這篇文章主要介紹了php中mkdir()函數(shù)的權(quán)限問(wèn)題分析,需要的朋友可以參考下2016-09-09php中cookie與session的區(qū)別點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于php中cookie與session的區(qū)別點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以參考學(xué)習(xí)下。2021-12-12連接到txt文本的超鏈接,不直接打開(kāi)而是點(diǎn)擊后下載的處理方法
默認(rèn)情況下瀏覽器Mime類型設(shè)定中會(huì)直接打開(kāi)txt文本,但是如果想做到直接下載需要對(duì)Mime進(jìn)行設(shè)置。2009-07-07PHP 無(wú)限分類三種方式 非函數(shù)的遞歸調(diào)用!
今天分享下自己學(xué)習(xí)細(xì)說(shuō)php中的無(wú)限分類方法。學(xué)習(xí)php的朋友可以參考下。2011-08-08PHP超級(jí)全局變量、魔術(shù)變量和魔術(shù)函數(shù)匯總整理
這篇文章主要介紹了PHP超級(jí)全局變量、魔術(shù)變量和魔術(shù)函數(shù)匯總整理,有需要的同學(xué)可以看下2021-02-02php tp驗(yàn)證表單與自動(dòng)填充函數(shù)代碼
php tp驗(yàn)證表單與自動(dòng)填充函數(shù)代碼,需要的朋友可以參考下2012-02-02