簡単なテキストファイルをレンタルサーバに置き、ダウンロードする。
それをローカルで編集処理したあと、そのサーバにアップします。
これらの処理をJAVAで行い、排他制御するにはどういったことをすればいいでしょうか。
ダウン・アップをするクライアントは複数あり、ダウン~アップロードまでが一プロセスです。
アクセスが重なったときに一クライアントのプロセスを排他制御したいのです。
レンタルサーバに関しては、ロリポップ他を考えていました。
ビンゴ直撃には別途ポイントも考えています。
おそらく通信には FTP を使う事になると思いますが、
それを制御する為の仕組みは無いので、厳密には不可能に近いと思います。
それをふまえたうえで現実的な解としては、
ロックの為のファイル名を決めておき、プロセス開始前にそのファイルの存在をチェック。
存在すればロックされているので一時停止、もしくは中止。
存在しなければ作成した上でプロセス続行、プロセス終了時に削除でどうでしょうか?
ネットワーク越しの更新に対して排他制御するためには工夫が必要です。排他制御の基本をご存じないようであれば、まずは以下のサイトを一読することをお勧めします(私は排他制御に mkdir をよく使います)。
http://x68000.q-e-d.net/~68user/webcgi/lock.html
FTP を使ってファイルを転送するのであれば「ファイル転送処理」と「排他処理を踏まえたファイル更新処理」に分け、別に考えたほうがよいですね。
排他はちゃんとやろうとすると果てしなく大変です。少しでもラクをしたいのであれば、DB, cvs, wiki, webdav, nfs など、あらかじめ複数の人が更新する仕組みを考慮したシステムを流用するのが賢明です。
具体的なファイル転送の方法が決まっているなら、その情報を展開するともう少し具体的なアドバイスをもらえるかもしれません。
コメント(0件)