diff --git a/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py b/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py index f0dfa13b1cc39c1616c85c3e9bd13ab5d838de85..973efd4f34978d1653a993586856c6de7998cdd8 100755 --- a/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py +++ b/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py @@ -46,9 +46,13 @@ class DmFileSystemEventHandler(FileSystemEventHandler): files = glob.glob(os.path.join(event.src_path,'*')) self.logger.debug('Processing directory event: %s , src path: %s' % (event.__dict__, event.src_path)) if len(files) > 0: - filePath = max(files, key=os.path.getctime) - self.logger.debug('Latest file: %s' % (filePath)) - self.fileSystemObserver.fileUpdated(filePath, self.dataDirectory, self.experiment) + sortedFiles = sorted(files, key=os.path.getctime, reverse=True) + for filePath in sortedFiles: + if os.path.isfile(filePath): + self.logger.debug('Latest file: %s' % (filePath)) + self.fileSystemObserver.fileUpdated(filePath, self.dataDirectory, self.experiment) + return + self.logger.debug('No new files found in %s' % (event.src_path)) except Exception, ex: self.logger.error('Exception occured when searching for file in directory %s: %s' % (event.__dict__, ex)) else: diff --git a/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py b/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py index 1d907ce9a67992e6d2e3c0f2e5cfa8e4cbbe59cf..b3900e5a86bffc8283fdde17b61a1b5befe4394b 100755 --- a/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py +++ b/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py @@ -110,7 +110,7 @@ class FileSystemObserver(threading.Thread,Singleton): observedFile['statusMonitor'] = daqInfo observedFile.setLastUpdateTimeToNow() self.observedFileMap[filePath] = observedFile - self.logger.debug('Observed file updated: %s', observedFile) + self.logger.debug('Observed file updated: %s', filePath) @ThreadingUtility.synchronize def checkObservedFilesForProcessing(self):