1

フォルダーを監視して、それらのフォルダーの変更を通知できるプログラムを作成しました。ただし、これはシステムがオンになるまで一日中実行する必要があります。これは、バックグラウンドでタスクとして実行する必要があります (バッチ プロセスのように)。
フォルダーの監視に Java WatchService を使用しています。
いくつかの提案が必要です。

  1. これをバックグラウンドでバッチ プロセスとして実行するサービスとしてどのように作成できますか?
  2. これをサービスにした場合、システムのパフォーマンスに影響はありますか? 少なくとも5分ごとにフォルダーにファイルが追加されるためです。

あなたのアイデアを提案してください。

ありがとう

4

3 に答える 3

3

Q>これをバックグラウンドでバッチ処理として実行するサービスにするにはどうすればよいですか?
A>このSO 投稿を参照してください。同じ質問に対処しています。

Q> これをサービスにした場合、システムのパフォーマンスに影響はありますか? 少なくとも5分ごとにフォルダーにファイルが追加されるためです。
A> を使っているのでWatchService、これはかなり安いはずです。ドキュメントの引用:

ほとんどのファイル システムの実装では、ファイル変更通知がネイティブでサポートされています。Watch Service API は、利用可能な場合、このサポートを利用します。ただし、ファイル システムがこのメカニズムをサポートしていない場合、監視サービスはファイル システムをポーリングし、イベントを待機します。

疑問がある場合は、いつでもサーバーを監視して、アプリが使用する CPU と I/O の量を確認できます。これは多くないと思います。

于 2012-11-09T21:50:50.263 に答える
0

のように、無限ループでスレッドを作成します。

while(true) {
   //code and logic
   Thread.sleep(theTimeYouWantBetweenTheScans);
}

java -jar myMonitor.jar などの便利な.batファイルを作成します

パフォーマンスはコードによって異なりますが、それほど重くなるべきではありません。楽しみ。

于 2012-11-05T09:31:52.497 に答える