def _fetch_all_messages(): settings = Settings() try: queue = Queue(settings.MESSAGING_QUEUEDIR, schema=MSG_SCHEMA) except OSError as error: raise JensMessagingError("Failed to create Queue object (%s)" % error) msgs = [] for _, name in enumerate(queue): try: item = queue.dequeue(name) except QueueLockError as error: logging.warn("Element %s was locked when dequeuing", name) continue except OSError as error: logging.error("I/O error when getting item %s", name) continue try: item['data'] = pickle.loads(item['data']) except (pickle.PickleError, EOFError) as error: logging.debug("Couldn't unpickle item %s. Will be ignored.", name) continue logging.debug("Message %s extracted and unpickled", name) msgs.append(item) return msgs
name = dirq_b.next() print("found %i elements; got %i" % (done + miss, done)) assert done == (COUNT - miss) del dirq_b print('=' * 25) # ======== # CONSUMER print("*** CONSUMER: Python iterator protocol.") dirq_c = Queue(path, schema=schema) miss = 0 for i, name in enumerate(dirq_c): i += 1 # enumerate(o, start=1) in Python 2.6 print("element %i: %s %s" % (i, path, name)) try: e = dirq_c.dequeue(name) # lock(name), get(name), remove(name) except QueueError: error = sys.exc_info()[1] print(error) miss += 1 continue except Exception: error = sys.exc_info()[1] print(error) break print(e.keys()) print("consumed %i elements out of %i seen" % (i - miss, i)) total_left = dirq_c.count() print("elements left in the queue: %d" % total_left) assert total_left == miss del dirq_c