問題タブ [watchservice]

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.

0 投票する
2 に答える
81 参照

java - Java で変更されたファイルに関する情報を取得する

Javaでファイルを監視しようとしています。ファイルの変更がいつ行われるか知りたい:

  1. 変更を行ったプロセス。
  2. 変化したこと。

また、ファイルの「最終更新日」を変更する方法があることも知っているので、誰かがそのフィールドを変更したかどうかを確認したいと思います。

「commons.io」、「DefaultFileMonitor」、「WatchService」を試してみましたが、それらから得られる情報は、変更が発生した場合と変更されたファイルだけでした。

0 投票する
2 に答える
4921 参照

java - WatchService を使用した単体テスト コード

以下は、WatchService を使用してデータとファイルの同期を維持する簡単な例です。私の質問は、コードを確実にテストする方法です。おそらく、os/jvm が監視サービスにイベントを取得し、テスト スレッドが監視サービスをポーリングする間の競合状態が原因で、テストが失敗することがあります。私の望みは、コードをシンプルに、シングル スレッドで、ノンブロッキングに保ちながら、テスト可能にすることです。私はテスト コードに任意の長さのスリープ コールを入れることを非常に嫌います。より良い解決策があることを願っています。

そして今回のテスト

0 投票する
2 に答える
2018 参照

java - WatchService: 見逃したイベントと未処理のイベント

WatchService に問題があります。ここに私のコードのスニペットがあります:

※まず、watch() が無限ループ内で呼び出されることを知っておいてください。

問題は、一度に複数のファイルを作成すると、一部のイベントが欠落することです。たとえば、3 つのファイルを「.../request」フォルダーにコピー アンド ペーストすると、1 つだけがキャッチされ、他のファイルは何も起こらなかったかのように残り、OVERFLOW イベントもトリガーされません。一部の異なるコンピューターと OS では、最大 2 つのファイルに到達しますが、1 つが 3 つ以上を試行しても、残りはそのままです。

回避策を見つけましたが、それがベストプラクティスだとは思いません。フローは次のとおりです。

プロセスが開始され、次に停止します

予想通り (処理中のイベントに従って)。次に、「request」フォルダーに 3 つのファイルをまとめてドロップします。

問題はここです。スレッドがこの行を非常に速く通過しているように見えるため、2 つの CREATED イベントが遅れて失われ、1 つだけが取得されます。回避策は、次のように、この行のすぐ上に余分な行を追加することでした:

これは、少なくとも 3 つ以上の同時ファイルに対する解決策のようですが、スケーラブルではありません。結論として、この問題に対するより良い解決策があるかどうかを知りたいと思います。参考までに、私はWin 7 64を実行しています

よろしくお願いします!

0 投票する
1 に答える
1811 参照

java - アプリケーションのシャットダウン時に WatchService を終了するには?

次のコードに対してをWatchServiceスローするがあります。ClosedWatchServiceException

例外を取得せずにサービスを安全にシャットダウンするにはどうすればよいですか? または、アプリケーションを終了するときにスレッドが強制終了されるため、シャットダウンを無視する必要がありますか?

0 投票する
1 に答える
418 参照

java - UNIX sys/classes/gpio ファイルの NIO 監視サービス

/sys/class/gpio/gpioXデバイス ツリー内のファイルに JAVA NIO WatchService を設定して、そこで変更を監視することは可能ですか?

GPIO ファイル (つまり、GPIO 入力) の変更を Java 内から直接検出するのは良い考えですが、それはサポートされていません。

サポートされていないこと (およびおそらくその理由) の確認で十分です。

0 投票する
0 に答える
49 参照

java - WatchService を使用して .txt の変更を識別する

WatchService を使用して、複数のファイルへの変更がないかディレクトリをスキャンしようとしています。変更された特定のディレクトリ内の正確なテキスト ファイルを特定できます。プログラムに変更内容を正確に表示させ、その変更を特定の変数で検索する方法があるかどうか疑問に思っています。

新しいエントリは次のようになります

07/02/15 11:44、88、55

この線を引いて、88 または 55 が 100 以上になるかどうかをスキャンします。

これが私の現在のコードです。