セッションを同期する必要があります。A
書き込み/保存session
B
またはanother A
待機中の場合。ファイルベースのセッション処理には必須です。
ただしA
、セッションをロードしたら (ただし、変更を保存した後) B
、同じセッションをロードすることも許可する必要があります。ロードするとファイルが開き、ファイルの内容がメモリに読み込まれて閉じられるためです。
A
セッションをロードしA
てセッションを保存している間、他のすべてのスクリプトをブロックする理由はありますか? 保存ハンドラのみで同期を行うことはできませんか?
したがって、同じセッションを共有する場合、2 つの PHP スクリプトが同時に動作することはありません。
例えばseslock.php
<?php
header('Content-Type: text/plain');
session_start();
if(isset($_GET['wait'])){
sleep(30);
echo "waiting\n";
}else{
echo "No Waiting\n";
}
?>
done
訪問seslock.php
はすぐに応答しますが、応答にseslock.php?wait
は 30 秒かかります。seslock.php?wait
しかし、問題は、最初に 2 番目にのみ要求する場合ですseslock.php
。non-sleep
ブロックが 30 秒間待機するように要求するイベント。
なぜブロックするのかは私の質問ではありません。なぜブロックするのstart to save
ですか?ブロックする代わりにonly save
?