PHP - Session 併發阻斷問題

PHP - Session 併發阻斷問題

這次我遇到Session會製造的bug

由其我們使用大量的ajax,會感受到,畫面跑的有點慢,由其遇到其中一個ajax,跑超慢的(因為有跟第三方對接)

第一支跑超慢的api,導致後面跑超過的api被卡住,所有畫面呈現不出來。

才發現,原來是session_start的問題,被lock住,其它頁面無法去存取session. 

這時在那個跑超慢的api那邊加了

session_write_close(); 

就整個很順,

在讀取資料的地方也加上,就整個用飆的併行處理。

session_start 只要呼叫一次,之後,就能取得session值,後面直接session_write_close(); ,一樣讀得到,只是不能寫入。

所以如果只有讀取的動作,連續動作是可以的

session_start();

session_write_close(); 

不只解決問題,

讓整個網頁跑的速度也變快好幾倍。

這時候就要好好的培養習慣,記得在每個controller/action下,都加上session_write_close();