2つのスクリプトが同時に実行されないようにするためのロックスクリプトが必要だとします。
if(file_get_contents('test.txt')) { // this is always empty...
die("Another script is running in background!");
}
file_put_contents('test.txt', 'busy!');
sleep(10); // heavy work here
file_put_contents('test.txt', '');
それでも、2つのスクリプトを同時に実行できます。file_get_contents()
結果がキャッシュされているように見えますか?
それを修正する方法は?DBではなくファイルを使いたい。
編集:私はすでにflock()を使用してロックスクリプトを実行することができました(Levi Morrisonに感謝します)
file_get_contents
とにかく、なぜこんなに予期しない振る舞いで動作するのか、私はまだ興味がありますか?