diff --git a/sarracenia/flow/__init__.py b/sarracenia/flow/__init__.py index df27a3ed0..8373d94b2 100644 --- a/sarracenia/flow/__init__.py +++ b/sarracenia/flow/__init__.py @@ -962,10 +962,20 @@ def filter(self) -> None: if self.o.messageAgeMax != 0 and lag > self.o.messageAgeMax: self.reject( m, 504, - "Excessive lag: %g sec. Skipping download of: %s, " % - (lag, m['new_file'])) + f"message too old (high lag): {lag:g} sec. skipping: {m['new_file']}, " ) continue + if 'mtime' in m: + age = now-sarracenia.timestr2flt(m['mtime']) + if self.o.fileAgeMax > 0 and age > self.o.fileAgeMax: + self.reject( m, 410, f"file too old: {age:g} sec. skipping: {m['new_file']}, ") + continue + + if self.o.fileAgeMin > 0 and age < self.o.fileAgeMin: + logger.warning( f"file too young: queueing for retry.") + self.worklist.failed.append(msg) + continue + if 'fileOp' in m and 'rename' in m['fileOp']: url = self.o.variableExpansion(m['baseUrl'], m) + os.sep + m['fileOp']['rename']