We are trying to use the the DirectoryChangesSource to monitor directory changes but having some issue with it where we found no solutions yet in the documentation.
The directory structure:
- dirA
** dir1 - dirB
** dir2
The use case we are trying to solve is:
- Track all changes in all directories including the nested ones
- A full directory with files is dropped in the nested dirs where we also need to start tracking changes + capture the files in the nested directories as changes
The first can be fixed by using a Files.walk, filter on directories and apply the DirectoryChangesSource on each. Not sure yet what this means for resources / system load.
Files
.walk(Paths.get(applicationSettings.sourceSettings.sourcePath))
.filter(path => Files.isDirectory(path))
.toScala[Stream]
.map(path => {
DirectoryChangesSource(path, pollInterval = 1 second, maxBufferSize = 1000)
})
.reduce(_ concat _)
Does anybody have an idea on how to tackle the 2nd issues?