azure-service-bus-java icon indicating copy to clipboard operation
azure-service-bus-java copied to clipboard

receiveMessages method with maxWaitTime not working as expected

Open abhijitkushwaha1998 opened this issue 4 years ago • 0 comments

Actual Behavior

  1. I am working on azure service bus and using ServiceBusReceiverClient.receiveMessages(int maxMessages, Duration maxWaitTime) method to receive the message from the service bus, my use case is to receive batch of messages in specific amount of time. But this is not working as expected it is not waiting for duration maxWaitTime.
  2. it start the processing of the message as soon as one message is received.

below is code snippet :

`ServiceBusReceiverClient receiver = new ServiceBusClientBuilder() .connectionString(connectionString) .receiver() .maxAutoLockRenewDuration(Duration.ofMinutes(1)) .queueName("<>") .buildClient(); while (true) {

    Iterator<ServiceBusReceivedMessage> iterator =  receiver.receiveMessages(10, Duration.ofMinutes(2)).iterator();
    while (iterator.hasNext()) {
        ServiceBusReceivedMessage serviceBusReceivedMessage = (ServiceBusReceivedMessage) iterator.next();
        System.out.println("received message is  ->"+serviceBusReceivedMessage.getBody());
        
    }
    
}`

Expected Behavior

  1. it should wait for maximum number of messages to receive before it times out.

Versions

  • OS platform and version: NA
  • Maven package version or commit ID: 7.0.2

abhijitkushwaha1998 avatar May 26 '21 05:05 abhijitkushwaha1998