質問: お世話になります。 現在以下の4台のサーバでシステムを組んでいます。 ・2台のWebサーバ(Linux。PHPの実行。1号機、2号機と呼称) ・1台のNFSサーバ(各Webサーバと接続) ・1台のMySQLサーバ(各Webサーバから接続) このとき「片方のWebサーバでPHPの処理を実行中、 もう片方で同じスクリプトが実行され、処理が重複しないようにするために 処理を待機させる(もしくは断念させる)」ことは可能でしょうか。 (排他処理) 当初、プロセスが動いているかで判断しようとしたのですが よく考えると1号機のプロセスを2号機で参照できないため プロセスのあり/なしで判別できないことが分かりました。 よろしくお願いします。
回答: MySQL上に自作のジョブ管理テーブルを持たせて、そちらで管理すればよいのではないでしょうか。 NFS上でロックファイルを作る案もありますが、ちょっと不安です(根拠はなく主観的なものです)。