PHP 解決session死鎖的方法
更新時(shí)間:2013年06月20日 16:55:26 作者:
本篇文章是對(duì)PHP解決session死鎖的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
今天在開發(fā)碰到個(gè)棘手的問題 。
當(dāng)異步請(qǐng)求后臺(tái)處理一個(gè)大數(shù)據(jù)量操作時(shí) 請(qǐng)求其他控制器都沒返回信息了。。起初以為是Ext 框架設(shè)置了ajax同步造成的。
后來發(fā)現(xiàn)時(shí)session 死鎖造成其他控制器在等待session 完成后才能操作。(主要是用戶登錄判斷需要更新session)
當(dāng)PHP 處理大數(shù)據(jù)量操作時(shí) 不能及時(shí)操作完成 這時(shí)候又有訪問其他控制器或者
異步請(qǐng)求時(shí)候會(huì)造成session 死鎖現(xiàn)象
和同事探討了下 可使用 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.
功能: 結(jié)束當(dāng)前的session 操作 保存session 數(shù)據(jù)
說的很明白了, 當(dāng)腳本請(qǐng)求沒有調(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)求其他控制器都沒返回信息了。。起初以為是Ext 框架設(shè)置了ajax同步造成的。
后來發(fā)現(xiàn)時(shí)session 死鎖造成其他控制器在等待session 完成后才能操作。(主要是用戶登錄判斷需要更新session)
當(dāng)PHP 處理大數(shù)據(jù)量操作時(shí) 不能及時(shí)操作完成 這時(shí)候又有訪問其他控制器或者
異步請(qǐng)求時(shí)候會(huì)造成session 死鎖現(xiàn)象
和同事探討了下 可使用 session_write_close() 解決此問題
復(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ù)
說的很明白了, 當(dāng)腳本請(qǐng)求沒有調(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有效期問題
- 詳解php設(shè)置session(過期、失效、有效期)
- PHP中怎樣保持SESSION不過期 原理及方案介紹
- PHP中session使用方法詳解
- PHP會(huì)話控制:Session與Cookie詳解
- PHP Session變量不能傳送到下一頁的解決方法
- php Session存儲(chǔ)到Redis的方法
- PHP中SESSION的注銷與清除
- php基于session鎖防止阻塞請(qǐng)求的方法分析
- PHP session文件獨(dú)占鎖引起阻塞問題解決方法
- PHP實(shí)現(xiàn)提高SESSION響應(yīng)速度的幾種方法詳解
相關(guān)文章
PHP實(shí)現(xiàn)隨機(jī)發(fā)撲克牌
這篇文章主要為大家詳細(xì)介紹了PHP實(shí)現(xiàn)隨機(jī)發(fā)撲克牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
php中使用接口實(shí)現(xiàn)工廠設(shè)計(jì)模式的代碼
php實(shí)現(xiàn)工廠設(shè)計(jì)模式,使用接口實(shí)現(xiàn),表面上接口沒有什么用,因?yàn)閜hp是類型自動(dòng)轉(zhuǎn)換的。實(shí)現(xiàn)上使用接口可以約束類的定義,從而實(shí)現(xiàn)一致的訪問2012-06-06
php實(shí)現(xiàn)首頁鏈接查詢 友情鏈接檢查的代碼
網(wǎng)站首頁超鏈接反查 友情鏈接查詢 外鏈查詢 ,對(duì)于其中的思路2010-01-01
PHP服務(wù)器頁面間跳轉(zhuǎn)實(shí)現(xiàn)方法
在ASP中,我們可以使用Server.Transfer來實(shí)現(xiàn)在服務(wù)器端重定向,PHP中雖然沒有這樣的函數(shù),但是要實(shí)現(xiàn)類似的跳轉(zhuǎn)也不難2012-08-08
方便實(shí)用的PHP生成靜態(tài)頁面類(非smarty)
不喜歡Smarty,直接寫了一個(gè)生成靜態(tài)的類,方便簡單實(shí)用,希望大家繼續(xù)完善。2008-11-11

