Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-1242

Sending at-most-once (presettled) messages with a delay between them does not work with BlockingConnection

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • proton-0.13.0
    • None
    • python-binding
    • None
    • Red Hat Enterprise Linux 6.8 64bit, dispatch-router 0.6.0

    Description

      Messenger blocking API should work in combination with calls to time.sleep(). For example, if I wish to send certain number of messages with 0.5s delay between each, I should be able to write

      messages = 5
      host, path = address.split('/')
          conn = BlockingConnection(host)
          sender = conn.create_sender(path, options=AtMostOnce())
      for i in range(messages):
              sender.send(Message(body="message %d" % i));
              time.sleep(0.5)
      

      The code above does not work. I tried sending over Qpid Dispatch Router and receiving with the simple_recv.py example and all five messages arrived at once, after approx. 2 seconds of waiting.

      If I leave out options=AtMostOnce(), then the code above works as expected and messages arrive one by one with the 0.5s delay.

      Steps to reproduce:

      python qpid-proton/examples/python/simple_recv.py -a 172.28.128.251/myaddress

      python slow_presettled_send_blocking.py -a 172.28.128.251/myaddress -m 5

      Attachments

        Activity

          People

            Unassigned Unassigned
            jdanek Jiri Daněk
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: