問題タブ [filelock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-integration - 共通の FS を使用して複数のノード間でファイルをロックする
複数のノードのクラスターで実行されているスプリング統合アプリケーションがあります。NFS ドライブはすべてのノードにマウントされ、すべてのノードから読み取り可能です。
file:inbound-channel-adapter
NFS には、 5 秒のポーリング間隔ですべてのノードによって監視されているフォルダーがあります。
問題は、1) 1 つのノードが他のノードによってピックアップされたファイルをピックアップしてはならないことです。
2) ファイルが 1 つのノードのスレッドによって取得された場合、ポーリング間隔の後に実行される 2 番目のスレッドはそれを取得すべきではありません AcceptOnceFileListFilter
。
すでに検討したオプションの 1 つ:
1) 一意のファイル名で DB にレコードを作成し、処理を開始する前に他のすべてのノードが同じ DB をチェックします。
NIOLocker をまだ検討する必要がありますが、このシナリオで信頼性と可能なオプションについていくつかの入力が必要です。
unix - 子プロセスと子孫プロセスの数を制限する
再帰的に使用する必要fork()
がありますが、フォークされたプロセス (子と子孫を含む) の数を (たとえば) 100 に制限します。次のコード スニペットを考慮します。
実装方法number_of_processes()
とnumber_of_processes_minus_one()
? IPCを使用する必要がありますか? ファイルを事前に作成し、書き込みPROC_MAX
、ロック、読み取り、書き込み、ロック解除を試みましたnumber_of_processes()
が、それでもすべての pid が使用されます。
java - どのように待ってファイルをロックするか
他のプログラムが特定のファイルのロックを解除するまで待ってから、そのロック解除されたファイルを開きます。
私は多くの解決策に出くわしましたが、どれも有用ではありません、ここに私のコードがあります-
このコードを実行すると、ファイルは他のWindowsプロセスによってロックされることがわかっているので、他のプロセスがロックを解放するまで待ってから、ロック解除されたファイルに進みます。ロックされたファイルを開こうとするとFileNotFoundException
、「」のようになります(The process cannot access the file because it is being used by another process)
。
channel = new RandomAccessFile(file, "rw").getChannel();
上記のコードでは、同じ例外が行 " "でスローされるため、ロックが取得されるのを待つことができません。
これについて私を助けてください、基本的に私は他のプロセスがファイルのロックを解放したという通知を受け取りたいです、そしてその時まで、私はwait()したいです。
linux - FTP で開いているファイルをロックしますか?
FTP 経由で開いているファイルをロックしたいので、(OSX にマウントされた FTP フォルダーで) ファイルが編集されると、他の誰もできなくなります: - 保存 (必須) - ファイルを開く (オプション)
これを達成する方法についてのヒントはありますか?ファイルを開くと、ローカルにコピーしてから再アップロードするだけなので、だまされている可能性があることは理解しています。
java - Windows vs OSX FileLock OutputStreamWriter
他の VM の他のプロセスが同じことをしようとしている間に、ファイルにアクセスする Java アプリケーションを作成しました。したがって、FileLock クラスを使用します。
Mac OSX ではすべて正常に動作しますが、Windows 7 でコードを実行すると、次の行で IOException がスローされます。
、フラッシュしようとしたとき。
私が理解している限り、FileLock はどのように機能しますか? 、ロックの実際の取得
別のプロセス(明らかにこれ)が排他ロックを持っているため、アクセスすることを禁じています。
これはパラドクソンのように私を襲います-ロックを取得する実際の行為が私を妨げると同時に、他のプロセスがそれをいじる危険なしにファイルに書き込むことができるようにするために、排他的ロックを取得するにはどうすればよいでしょうか?
その結果、Windows ではなく Mac OS で動作するのはなぜですか? JavaDocs から、FileLock クラスには OS 固有の違いと問題があることを知っていますが、その設計目的の機能に関しては確かにそうではありません。これは当てはまらないので、私は何か間違ったことをしています。ここであなたの助けを求めます.
Thx、M
java - AndroidでFileLockを使用するには?
このリンクを見たので、排他的アクセスのためにファイルをロックできると思います: http://developer.android.com/reference/java/nio/channels/FileLock.html
バックグラウンド プロセス (サービス) と実際のフォアグラウンド アプリの両方で、ファイルの保存/読み込みを作成したいと考えています。彼らは同時にこのファイルにアクセスしようとするかもしれませんが、その場合は待つ必要があります。
Android で FileLock の実際のサンプルを見つけることができませんでした。Android ではこれができないという多くのスレッドを読んだだけです。しかし、もしそうなら、ドキュメントに「FileLock」のセクションがあるのはなぜですか?
c# - C#ファイルは作成後にロックされました
FileStream と StreamWriter を使用して .eml/txt ファイルを作成する Windows サービスを作成しています。これは完全に機能し、必要なことはすべて実行します。唯一の問題は、作成された新しいファイルが何らかの理由でその後もサービスで使用されていることです。その理由はわかりません。どんな手掛かり?修正?
新しいファイルに触れるのは FileStream と StreamWriter だけであるため、FileStream と StreamWriter に関係する行の周りに何かがあるに違いないと思います。前もって感謝します!
Service1.cs
Program.cs
c - c windows マルチスレッド ファイル ロック
Windows で、マルチスレッド C コードで排他的な方法 (ソフトウェアの読み取りと書き込み) でファイルをロックする簡単な方法はありますか? LockFileEx を試しましたが、プロセス間でのみ機能し、(同じプロセスの) スレッドでは機能しません。
注: 私の問題は、小さなファイル サーバー (マルチスレッド) を作成したことです。ファイルの要求が来ると、1 つのスレッド "A" が要求された "file1.txt" に排他的にアクセスする必要がありますが、別のスレッド " B" は、このファイルを使用する前に待機する必要がある同じ "file1.txt" を必要としています。スレッド "A" が "file1.txt" を開く/作成するために dwSharedMode を "0" に指定して CreateFile() を使用し、スレッド "B" が "file1.txt" を開こうとするとエラーが発生します。 。TXT"。スレッド「B」は「file1.txt」をどのように待機できるでしょうか。
c# - サービスを構築できません: 別のプロセスで使用されているため、ファイルをコピーできません
c# .net で Windows サービスを構築しています。ビルド時にサービスを自動的にデプロイするために、ビルド前およびビルド後のイベントを追加しました。しかし、いつかこのエラーが発生しました:
ファイル "[CompletPath...]\bin\Debug\Business.Data.dll" を "bin\Debug\Business.Data.dll" にコピーできません。別のプロセスで使用されているため、プロセスはファイル 'bin\Debug\Business.Data.dll' にアクセスできません。
Pre-Build イベントでは、サービスを閉じて、Debug ディレクトリ内のファイルを使用するすべてのタスクを強制終了し、サービスをアンインストールしています。Pre-Build イベントで実行している .bat にコードがあります。
サービスをインストールして開始しているビルド後のイベントでは、ビルド時にエラーが発生しているため、これが問題でなくてもコードがあり、ビルド後のイベントが実行されていません。
私はいつも問題を抱えているわけではありません。私は通常、最初にビルドするときに問題を抱えています。ソリューションをクリーニングし、再度ビルドすると、通常はこの後に機能します。