Example #1
0
 def createHashWorker(self):
     while True:
         file = self.toHash.get(block=True)
         try:
             cache().get(file)
         except (NotInCacheError, ItemVersionMissmatchError):
             try:
                 file = self.createHash(file)
                 cache().add(file)
             except IOError as e:
                 self.toHash.put(file)
                 logger.error(file.path + ': ' + str(e))
                 time.sleep(10)
         finally:
             self.toHash.task_done()
Example #2
0
 def hashFile(self, file, sync=True):
     try:
         cachedFile = cache().get(file)
         if cachedFile.mtime == file.mtime and cachedFile.size == file.size:
             return cachedFile
         else:
             raise FileChangedError()
     except (NotInCacheError, FileChangedError, ItemVersionMissmatchError):
         if False == sync:
             logger.debug('Adding file to Queue: ' + str(file))
             self.toHash.put(file)
             return file
         else:
             file = self.createHash(file)
             cache().add(file)
             return file