def run(self, fname, *args, **kwargs): while True: try: self._flock = os.open(self._lock, os.O_CREAT | os.O_EXCL | os.O_WRONLY) log.info("SafeHDF:%s lock:%s" % (self._lock, self._flock)) break # except FileExistsError: # except FileExistsError as e: # except (IOError, EOFError, Exception) as e: except (IOError, OSError) as e: # time.sleep(probe_interval) log.error("IOError Error:%s" % (e)) if self.countlock <= 10: time.sleep(random.randint(1, 3)) # time.sleep(random.randint(0,5)) self.countlock += 1 else: os.remove(self._lock) # time.sleep(random.randint(15, 30)) log.error("count10 remove lock") # except (Exception) as e: # print ("Exception Error:%s"%(e)) # log.info("safeHDF Except:%s"%(e)) # time.sleep(probe_interval) # return None # HDFStore.__init__(self, fname, *args, **kwargs) HDFStore.__init__(self, fname, *args, **kwargs)
def __init__(self, *args, **kwargs): probe_interval = kwargs.pop("probe_interval", 0.01) self._lock = "%s.lock" % args[0] while True: try: self._flock = os.open(self._lock, os.O_CREAT | os.O_EXCL | os.O_WRONLY) break except FileExistsError: time.sleep(probe_interval) HDFStore.__init__(self, *args, **kwargs)
def __init__(self, *args, **kwargs): probe_interval = kwargs.pop("probe_interval", 1.0) self._lock = "%s.lock" % args[0] while True: try: self._flock = os.open(self._lock, os.O_CREAT | os.O_EXCL | os.O_WRONLY) break except FileExistsError: time.sleep(probe_interval) HDFStore.__init__(self, *args, **kwargs)
def __init__(self, *args, **kwargs): probe_interval = kwargs.pop("probe_interval", 1) self._lock = "%s.lock" % args[0] while True: try: self._flock = os.open(self._lock, os.O_CREAT | os.O_EXCL | os.O_WRONLY) break except OSError as e: if e.errno == errno.EEXIST: time.sleep(probe_interval) else: raise e HDFStore.__init__(self, *args, **kwargs)
def __init__(self, *args, **kwargs): if IS_PARALLEL: if len(args) < 1 or len(args[0]) == 0: raise ValueError("The first parameter should be database name") self._db_name = args[0] probe_interval = kwargs.pop("probe_interval", 0.5) self._lock = "%s.lock" % args[0] while True: try: # print('[{}] Waiting for lock ...'.format(self._db_name)) self._flock = os.open(self._lock, os.O_CREAT | os.O_EXCL | os.O_WRONLY) break except FileExistsError: time.sleep(probe_interval) HDFStore.__init__(self, *args, **kwargs)
def run(self, fname, *args, **kwargs): while True: try: self._flock = os.open(self._lock, os.O_CREAT | os.O_EXCL) # self._lock, os.O_CREAT | os.O_EXCL | os.O_WRONLY) log.info("SafeHDF:%s lock:%s" % (self._lock, self._flock)) break # except FileExistsError: # except FileExistsError as e: except (IOError, EOFError, Exception) as e: # except (IOError, OSError) as e: # time.sleep(probe_interval) # import ipdb;ipdb.set_trace() # os.unlink(self._lock) # os.remove(self._lock) if self.countlock > 1: log.error("IOError Error:%s" % (e)) if self.countlock <= 8: time.sleep(round(random.randint(3, 10) / 1.2, 2)) # time.sleep(random.randint(0,5)) self.countlock += 1 else: # os.close(self._flock) # os.unlink(self._lock) os.remove(self._lock) # time.sleep(random.randint(15, 30)) log.error("count10 remove lock") except WindowsError: log.error('WindowsError') finally: pass # except (Exception) as e: # print ("Exception Error:%s"%(e)) # log.info("safeHDF Except:%s"%(e)) # time.sleep(probe_interval) # return None # HDFStore.__init__(self, fname, *args, **kwargs) HDFStore.__init__(self, path=fname, *args, **kwargs)
# !/usr/bin/env python