コード例 #1
0
def test_queue_by_servicebus_client_fail_send_batch_messages(
        live_servicebus_config, standard_queue):
    pytest.skip("TODO: Pending bugfix in uAMQP")

    def batch_data():
        for i in range(3):
            yield str(i) * 1024 * 256

    client = ServiceBusClient(
        service_namespace=live_servicebus_config['hostname'],
        shared_access_key_name=live_servicebus_config['key_name'],
        shared_access_key_value=live_servicebus_config['access_key'],
        debug=False)

    queue_client = client.get_queue(standard_queue)
    results = queue_client.send(BatchMessage(batch_data()))
    assert len(results) == 4
    assert not results[0][0]
    assert isinstance(results[0][1], MessageSendFailed)

    with queue_client.get_sender() as sender:
        with pytest.raises(MessageSendFailed):
            sender.send(BatchMessage(batch_data()))

    with queue_client.get_sender() as sender:
        sender.queue_message(BatchMessage(batch_data()))
        results = sender.send_pending_messages()
        assert len(results) == 4
        assert not results[0][0]
        assert isinstance(results[0][1], MessageSendFailed)
コード例 #2
0
def test_queue_message_batch(live_servicebus_config, standard_queue):
    client = ServiceBusClient(
        service_namespace=live_servicebus_config['hostname'],
        shared_access_key_name=live_servicebus_config['key_name'],
        shared_access_key_value=live_servicebus_config['access_key'],
        debug=False)
    queue_client = client.get_queue(standard_queue)

    def message_content():
        for i in range(5):
            yield "Message no. {}".format(i)

    with queue_client.get_sender() as sender:
        message = BatchMessage(message_content())
        sender.send(message)

    with queue_client.get_receiver() as receiver:
        messages = receiver.fetch_next(timeout=10)
        recv = True
        while recv:
            recv = receiver.fetch_next(timeout=10)
            messages.extend(recv)

        assert len(messages) == 5
        for m in messages:
            print_message(m)
            m.complete()
コード例 #3
0
def message_send_process(sb_config, queue, endtime):
    def message_batch():
        for i in range(5):
            yield "Stress Test message no. {}".format(i)

    client = ServiceBusClient(service_namespace=sb_config['hostname'],
                              shared_access_key_name=sb_config['key_name'],
                              shared_access_key_value=sb_config['access_key'],
                              debug=True)

    total = 0
    queue_client = client.get_queue(queue)
    with queue_client.get_sender() as sender:
        while endtime > datetime.now():
            message = BatchMessage(message_batch())
            sender.send(message)
            total += 5
            time.sleep(0.01)
    return total