コード例 #1
0
ファイル: messaging.py プロジェクト: cernops/jens
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
コード例 #2
0
    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
コード例 #3
0
ファイル: dirq_simple.py プロジェクト: akash0x53/python-dirq
    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