From 6c3923c222a1c1b8661515fbb02a80aa19c84461 Mon Sep 17 00:00:00 2001 From: Romain Broucquart <romain.broucquart@synchrotron-soleil.fr> Date: Fri, 17 Sep 2021 17:35:26 +0200 Subject: [PATCH] [ArchiveExtractor] Add retry on DevFailed --- ArchiveExtractor.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/ArchiveExtractor.py b/ArchiveExtractor.py index a1c0e09..1c2c98c 100755 --- a/ArchiveExtractor.py +++ b/ArchiveExtractor.py @@ -455,18 +455,24 @@ if __name__ == "__main__": for attr in attributes: logger.info("Extracting attribute %s..."%attr) - try: - datevalue = query_ADB_BetweenDates(attr, args.dateStart, args.dateStop, extractor) - - # Add to result dictionnary - results[attr] = datevalue - - except ValueError as e: - logger.debug("ErrorMsg: %s"%e) - logger.warning("Failed to extract %s. Skipping..."%attr) - except tango.CommunicationFailed: - logger.warning("Failed to extract %s. Skipping..."%attr) - logger.error("The device %s might have crash.\n"+ + for attempt in range(3): + try: + datevalue = query_ADB_BetweenDates(attr, args.dateStart, args.dateStop, extractor) + + # Add to result dictionnary + results[attr] = datevalue + + except ValueError as e: + logger.debug("ErrorMsg: %s"%e) + logger.warning("Failed to extract %s. Skipping..."%attr) + except (tango.CommunicationFailed, tango.DevFailed) as e: + # retry + logger.debug("ErrorMsg: %s"%e) + logger.warning("Failed to extract %s. Retry..."%attr) + break + + else: + logger.error("The device %s might have crash.\n"%extractor+ "You should check with Jive and probably restart with Astor.\n") # Save all at each step -- GitLab