def test_delayed_transaction_message_pass(self): queue_name = "transaction_message_pass" client_id = "transaction_message_pass" kube_add = "localhost:50000" queue = MessageQueue(queue_name, client_id, kube_add) mm = [] queuePolicy = QueueMessagePolicy(DelaySeconds=3) message = create_queue_message("queueName {}".format(0), "first test Ack".encode('UTF-8'), queuePolicy) mm.append(message) queuePolicy2 = QueueMessagePolicy(DelaySeconds=5) message2 = create_queue_message("queueName {}".format(1), "first test Ack".encode('UTF-8'), queuePolicy2) mm.append(message2) queue.send_queue_messages_batch(mm) tr = queue.create_transaction() recm = tr.receive() self.assertEqual( recm.error, "Error 138: no new message in queue, wait time expired") tr.close_stream() time.sleep(0.1) recm = tr.receive(2, 3) self.assertFalse(recm.is_error) tr.close_stream() time.sleep(0.01) recm = tr.receive(2, 5) self.assertFalse(recm.is_error)
def test_delayed_message_pass(self): queue_name = "message_pass" client_id = "message_pass" kube_add = "localhost:50000" queue = MessageQueue(queue_name, client_id, kube_add) mm = [] queuePolicy = QueueMessagePolicy(DelaySeconds=3) message = create_queue_message( "queueName {}".format(0), "some-simple_queue-queue-message".encode('UTF-8'), queuePolicy) mm.append(message) queuePolicy2 = QueueMessagePolicy(DelaySeconds=5) message2 = create_queue_message( "queueName {}".format(1), "some-simple_queue-queue-message".encode('UTF-8'), queuePolicy2) mm.append(message2) queue.send_queue_messages_batch(mm) res = queue.receive_queue_messages() self.assertFalse(res.is_error) self.assertEqual(0, len(res.messages)) time.sleep(3.0) res = queue.receive_queue_messages() self.assertFalse(res.is_error) self.assertEqual(1, len(res.messages)) time.sleep(2.0) res = queue.receive_queue_messages() self.assertFalse(res.is_error) self.assertEqual(1, len(res.messages))
def test_get_message_pass_with_auth(self): client_id = "message_pass" kube_add = "localhost:50000" queue = MessageQueue("Get_Messages{}".format(randomString(10)), client_id, kube_add, encryptionHeader=jwt.encode({}, algorithm="HS256", key="some-key")) mm = [] message = create_queue_message("first test Ack", "hi there".encode('UTF-8')) mm.append(message) message2 = create_queue_message("sec test Ack", "hi again".encode('UTF-8')) mm.append(message2) queue.send_queue_messages_batch(mm) tr = queue.create_transaction() recm = tr.receive(3) self.assertFalse(recm.error) self.assertFalse( tr.ack_message(recm.message.Attributes.Sequence).is_error) self.assertEqual(1, len(queue.peek_queue_message().messages)) self.assertFalse(tr.receive().is_error) tr.close_stream()
def test_modify_after_ack_fail_with_auth(self): client_id = "ack_fail" kube_add = "localhost:50000" queue = MessageQueue("test_modify_after_ack_fail", client_id, kube_add, encryptionHeader=jwt.encode({}, algorithm="HS256", key="some-key")) mm = [] message = create_queue_message("first test Ack", "hi there".encode('UTF-8')) mm.append(message) message2 = create_queue_message("sec test Ack", "hi again".encode('UTF-8')) mm.append(message2) queue.send_queue_messages_batch(mm) tr = queue.create_transaction() recm = tr.receive(5) tr.ack_message(recm.message.Attributes.Sequence) time.sleep(0.1) recMod = tr.extend_visibility(5) self.assertTrue(recMod.is_error)
def send_batch_message_to_queue(queue_name, client_id, kube_add, max_number_messages, max_timeout): queue = MessageQueue(queue_name, client_id, kube_add, max_number_messages, max_timeout) mm = [] for i in range(2): message = create_queue_message( "queueName {}".format(i), "some-simple_queue-queue-message".encode('UTF-8')) mm.append(message) queue_send_batch_response = queue.send_queue_messages_batch(mm) print("finished sending message to queue with batch answer: {} ".format( queue_send_batch_response))
] message.attributes = None message.policy = policy return message if __name__ == "__main__": client_id = "python-sdk-cookbook-queues-resend-sender" kube_add = "localhost:50000" queue = MessageQueue("Get_Messages{}".format(random_string(10)), client_id, kube_add) mm = [] message = create_queue_message("some-metadata", "hi there".encode('UTF-8')) mm.append(message) message2 = create_queue_message("some-metadata", "hi again".encode('UTF-8')) mm.append(message2) queue.send_queue_messages_batch(mm) tr = queue.create_transaction() for seq in range(3): stream = tr.receive(1, 5) print(stream.message) if seq == 0: tr.resend(queue.queue_name) else: tr.ack_message(stream.message.Attributes.Sequence) tr.close_stream()
channel = "queues.ack" queue = MessageQueue(channel, "python-sdk-cookbook-queues-ack-client", "localhost:50000") mm = [] message = create_queue_message( "queueName {}".format(channel), "some-simple-queue-ack-message-1".encode('UTF-8')) mm.append(message) message2 = create_queue_message( "queueName {}".format(channel), "some-simple-queue-ack-message-2".encode('UTF-8')) mm.append(message2) try: sent = queue.send_queue_messages_batch(mm) if sent.have_errors: print('message enqueue error, error:' + sent.have_errors) else: print('Send to Queue') except Exception as err: print('message enqueue error, error:%s' % (err)) queue = MessageQueue(channel, "python-sdk-cookbook-queues-ack-client-receiver", "localhost:50000", 2, 1) try: res = queue.receive_queue_messages() if res.error: print("'Received:'%s'" % (res.error)) else: