def increment(self,idFile): """ Incrementa el id para el archivo especificado y devuelve el id que queda finalmente en el archivo """ from os import path if not path.exists(idFile): self.setId(idFile, 0) locker=locking() fi = open(idFile, 'r+') locker.exclusiveLock(fi) #Bloquea este archivo a otros procesos que usen este mismo locker para acceder al archivo newId=int(fi.readline())+1 fi.truncate(0) fi.seek(0) fi.write(str(newId)) fi.flush() locker.unLock(fi) fi.close() return newId
def setId(self,idFile,newId): """ Define el id actual para el archivo unicamente """ #Bloquea el archivo,lo trunca y guarda el nuevo id enviado. locker=locking() fi = open(idFile, 'w') locker.exclusiveLock(fi) #Bloquea este archivo a otros procesos que usen este mismo locker para acceder al archivo fi.write(str(newId)) locker.unLock(fi) fi.close()