Esempio n. 1
0
 def acquire(self):
     """Acquire a lock for that task and remove any previous stale lock"""
     lock = self._getLock()
     if lock:
         if lock.updateDate < datetime.now() - 2 * timedelta(seconds=tui.MTIME_POLL_INTERVAL):
             # Stale lock, removing
             TaskLock.delete(lock.id)
         else:
             raise YokadiException("Task %s is already locked by process %s" % (lock.task.id, lock.pid))
     TaskLock(task=self.task, pid=os.getpid(), updateDate=datetime.now())
Esempio n. 2
0
 def release(self):
     """Release the lock for that task"""
     # Only release our lock
     lock = self._getLock()
     if lock and lock.pid == os.getpid():
         TaskLock.delete(lock.id)