我编写了一个可以监控文件夹的程序,让我知道这些文件夹中的更改。 但这应该整天运行,直到系统开启。这应该作为后台任务运行(如批处理) 我正在使用Java WatchService来监视文件夹 我需要一些建议,
请提出您的想法。
由于
答案 0 :(得分:3)
当您的系统有足够的资源时,您可以并且不应该影响您的系统性能。
在java中执行此操作的步骤
FolderMonitor
来监视特定文件夹。
File("C:\folder1")
Map
中保留其上次修改时间
map键可以是foderName + fileName,值是修改时间。ScheduledExecutorService
FolderMonitor
课程变成一个罐子。提供服务
apache's procrun
或tanukisoftware
服务包装器从java可执行jar创建服务
希望你能做到。一切顺利
答案 1 :(得分:3)
Q>如何将此作为批处理在后台运行的服务? A>请参阅this SO帖子,它解决了同样的问题。
Q>如果我将其作为服务,这会影响系统的性能吗?因为文件夹中至少每5分钟会添加一次文件。
A>因为您使用的是WatchService
,所以这应该非常便宜。引用the documentation:
大多数文件系统实现都支持文件更改 通知。 Watch Service API利用此支持 在哪里可用。但是,当文件系统不支持此功能时 机制,Watch Service将轮询文件系统,等待事件。
如果有疑问,您可以随时监控服务器并查看应用程序使用的CPU和I / O数量。我打赌这不会太多。
答案 2 :(得分:0)
制作一个无限循环的线程,比如
while(true) {
//code and logic
Thread.sleep(theTimeYouWantBetweenTheScans);
}
创建.bat文件以方便使用,例如java -jar myMonitor.jar
性能取决于您的代码,但它不应该很重。享受。