Exemplo n.º 1
0
    def consume_full_message_and_do_ack(service: MessagingService, queue_to_consume: Queue, publisher, message):
        receiver: PersistentMessageReceiver = service.create_persistent_message_receiver_builder() \
            .with_message_auto_acknowledgement().build(queue_to_consume)
        receiver.start()
        print(f'PERSISTENT receiver started... Listening to Queue [{queue_to_consume.get_name()}]')
        receiver.add_subscription(TopicSubscription.of(topic_name))

        HowToPublishPersistentMessage.publish_string_message_non_blocking(publisher, topic, message)

        message: InboundMessage = receiver.receive_message()
        print(f"the message payload is {message.get_payload_as_string()}")
Exemplo n.º 2
0
    def consume_full_message_using_callback_and_do_ack(service: MessagingService, queue_to_consume: Queue,
                                                       publisher, message):
        try:
            receiver: PersistentMessageReceiver = service.create_persistent_message_receiver_builder() \
                .with_message_auto_acknowledgement().build(queue_to_consume)
            receiver.start()
            print(f'PERSISTENT receiver started... Listening to Queue [{queue_to_consume.get_name()}]')
            receiver.add_subscription(TopicSubscription.of(topic_name))
            message_handler = BasicTestMessageHandler()
            receiver.receive_async(message_handler)

            HowToPublishPersistentMessage.publish_string_message_non_blocking(publisher, topic, message)
        finally:
            receiver.terminate()
            HowToConsumeMessageExclusiveVsSharedMode.delete_queue(queue_to_consume.get_name())
Exemplo n.º 3
0
 def all_messages_replay(service: MessagingService,
                         queue_to_consume: Queue):
     receiver = None
     try:
         reply_strategy = ReplayStrategy.all_messages()
         receiver: PersistentMessageReceiver = service.create_persistent_message_receiver_builder() \
             .with_message_replay(reply_strategy).build(queue_to_consume)
         receiver.start()
         message: InboundMessage = receiver.receive_message(timeout=5000)
         if message:
             print(
                 f"the message payload is {message.get_payload_as_string()}"
             )
             receiver.ack()
     finally:
         if receiver:
             receiver.terminate()
Exemplo n.º 4
0
    def time_based_replay(service: MessagingService, queue_to_consume: Queue):
        receiver = None
        try:
            reply_strategy = ReplayStrategy.time_based(
                datetime.now()
            )  # replay_date can be earlier/equal to the date of the message publish was done

            receiver: PersistentMessageReceiver = service.create_persistent_message_receiver_builder() \
                .with_message_replay(reply_strategy).build(queue_to_consume)
            receiver.start()
            message: InboundMessage = receiver.receive_message(timeout=5000)
            if message:
                print(
                    f"the message payload is {message.get_payload_as_string()}"
                )
                receiver.ack()
        finally:
            if receiver:
                receiver.terminate()
Exemplo n.º 5
0
    def id_based_replay(
            service: MessagingService, queue_to_consume: Queue,
            restored_replication_group_message_id: 'ReplicationGroupMessageId'
    ):
        """Showcase for API to trigger message replay using string representation of a replication group message Id"""
        receiver = None
        try:
            reply_strategy = ReplayStrategy.replication_group_message_id_based(
                restored_replication_group_message_id)

            receiver: PersistentMessageReceiver = service.create_persistent_message_receiver_builder() \
                .with_message_replay(reply_strategy).build(queue_to_consume)
            receiver.start()
            message: InboundMessage = receiver.receive_message(timeout=5000)
            if message:
                print(
                    f"the message payload is {message.get_payload_as_string()}"
                )
                receiver.ack()
        finally:
            if receiver:
                receiver.terminate()