Package org.miaixz.bus.core.io.watch
Class DelayWatcher
java.lang.Object
org.miaixz.bus.core.io.watch.DelayWatcher
- All Implemented Interfaces:
Watcher
延迟观察者 使用此观察者通过定义一定的延迟时间,解决
WatchService多个modify的问题 在监听目录或文件时,如果这个文件有修改操作,会多次触发modify方法。
此类通过维护一个Set将短时间内相同文件多次modify的事件合并处理触发,从而避免以上问题。 注意:延迟只针对modify事件,其它事件无效- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidonCreate(WatchEvent<?> event, WatchKey key) 文件创建时执行的方法voidonDelete(WatchEvent<?> event, WatchKey key) 文件删除时执行的方法voidonModify(WatchEvent<?> event, WatchKey key) 文件修改时执行的方法 文件修改可能触发多次voidonOverflow(WatchEvent<?> event, WatchKey key) 事件丢失或出错时执行的方法
-
Constructor Details
-
DelayWatcher
构造- Parameters:
watcher- 实际处理触发事件的监视器Watcher,不可以是DelayWatcherdelay- 延迟时间,单位毫秒
-
-
Method Details
-
onModify
Description copied from interface:Watcher文件修改时执行的方法 文件修改可能触发多次- Specified by:
onModifyin interfaceWatcher- Parameters:
event- 事件,可通过WatchEvent.context()获取创建的文件或目录名称key- 事件发生的WatchKey,可以通过WatchKey.watchable()获取监听的Path路径
-
onCreate
Description copied from interface:Watcher文件创建时执行的方法- Specified by:
onCreatein interfaceWatcher- Parameters:
event- 事件,可通过WatchEvent.context()获取创建的文件或目录名称key- 事件发生的WatchKey,可以通过WatchKey.watchable()获取监听的Path路径
-
onDelete
Description copied from interface:Watcher文件删除时执行的方法- Specified by:
onDeletein interfaceWatcher- Parameters:
event- 事件,可通过WatchEvent.context()获取创建的文件或目录名称key- 事件发生的WatchKey,可以通过WatchKey.watchable()获取监听的Path路径
-
onOverflow
Description copied from interface:Watcher事件丢失或出错时执行的方法- Specified by:
onOverflowin interfaceWatcher- Parameters:
event- 事件,可通过WatchEvent.context()获取创建的文件或目录名称key- 事件发生的WatchKey,可以通过WatchKey.watchable()获取监听的Path路径
-