ajaxでPHPに重い処理を複数呼ぶ時の注意点

どうもカミジンです。
PHP開発でハマってました。

Ajaxでsleep(1)って書いたPHPに10個要求飛ばすと1秒で終わらず10秒かかって悩んでました。

原因はセッション。おそらく、セッションが開始している時にセッションを開始しようとするとブロックされるということでしょう。セッションが自動開始するphp.iniの設定もあるのでおおいにハマりそう。

自動的にセッションを開始するphp.iniの設定
session.auto_start = 1

なので、重い処理の前にセッションを終了しておく

session_write_close();

が正解でした。