diff --git a/ArchiveExtractor.py b/ArchiveExtractor.py index a1c0e09f75a0e1138227c9b913ac73d228cbf20f..1c2c98c1614ca452bb13d4f900de7e3ac2669512 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