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();