Esempio n. 1
0
 def on_delivery(self, event):
     now = time.time()
     link = event.link
     if link.is_sender:
         dlv = event.delivery
         if dlv.settled:
             self.total_ack_latency += now - self.last_send_time
             dlv.settle()
             if self._sends:
                 self._send_message(link)
             else:
                 self.stop_time = now
                 link.close()
                 duration = self.stop_time - self.start_time
                 thru = self.count / duration
                 permsg = duration / self.count
                 ack = self.total_ack_latency / self.count
                 lat = self.total_tx_latency / self.count
                 print(
                     "Stats:\n"
                     " TX Avg Calls/Sec: %f Per Call: %f Ack Latency %f\n"
                     " RX Latency: %f" % (thru, permsg, ack, lat))
     else:
         msg = Message()
         dlv = msg.recv(link)
         if dlv:
             dlv.update(dlv.ACCEPTED)
             dlv.settle()
             self.total_tx_latency += now - msg.body['tx-timestamp']
             self._sends -= 1
             if self._sends == 0:
                 link.close()
Esempio n. 2
0
 def on_delivery(self, event):
     rcv = event.receiver
     msg = Message()
     if rcv and msg.recv(rcv):
         event.delivery.settle()
         self.messages += [msg.body]
         self.count -= 1
         if (self.count == 0):
             self.acceptor.close()
Esempio n. 3
0
 def on_delivery(self, event):
   rcv = event.receiver
   msg = Message()
   if rcv and msg.recv(rcv):
     event.delivery.settle()
     self.messages += [msg.body]
     self.count -= 1
     if (self.count == 0):
       self.acceptor.close()
Esempio n. 4
0
class Program:
    def __init__(self):
        self.handlers = [CHandshaker(), CFlowController()]
        self.message = Message()

    def on_reactor_init(self, event):
        # Create an amqp acceptor.
        event.reactor.acceptor("0.0.0.0", 5672)
        # There is an optional third argument to the Reactor.acceptor
        # call. Using it, we could supply a handler here that would
        # become the handler for all accepted connections. If we omit
        # it, the reactor simply inherets all the connection events.

    def on_delivery(self, event):
        # XXX: we could make rcv.recv(self.message) work here to
        # compliment the similar thing on send
        rcv = event.receiver
        if rcv and self.message.recv(rcv):
            print self.message
            event.delivery.settle()
Esempio n. 5
0
class Program:

    def __init__(self):
        self.handlers = [CHandshaker(), CFlowController()]
        self.message = Message()

    def on_reactor_init(self, event):
        # Create an amqp acceptor.
        event.reactor.acceptor("0.0.0.0", 5672)
        # There is an optional third argument to the Reactor.acceptor
        # call. Using it, we could supply a handler here that would
        # become the handler for all accepted connections. If we omit
        # it, the reactor simply inherets all the connection events.

    def on_delivery(self, event):
        # XXX: we could make rcv.recv(self.message) work here to
        # compliment the similar thing on send
        rcv = event.receiver
        if rcv and self.message.recv(rcv):
            print self.message
            event.delivery.settle()
Esempio n. 6
0
class Decoder:
    def __init__(self, *handlers):
        self.__message = Message()
        self.handlers = handlers

    def on_delivery(self, event):
        if hasattr(event, "message"):
            return
        if self.__message.recv(event.link):
            event.message = self.__message
            dlv = event.delivery
            assert dlv.encoded
            try:
                event.dispatch(event.root, ENCODED_MESSAGE)
                event.dispatch(event.root, MESSAGE)
                dlv.update(Delivery.ACCEPTED)
            except:
                dlv.update(Delivery.REJECTED)
                # XXX: no cause?
                # XXX: no rethrow?
            finally:
                dlv.settle()
Esempio n. 7
0
class Decoder:

    def __init__(self, delegate=None):
        if delegate is None:
            self.__delegate = self
        else:
            self.__delegate = delegate
        self.__message = Message()

    def on_delivery(self, event):
        if self.__message.recv(event.link):
            event.message = self.__message
            dlv = event.delivery
            try:
                event.dispatch(self.__delegate, MESSAGE)
                dlv.update(Delivery.ACCEPTED)
            except:
                dlv.update(Delivery.REJECTED)
                traceback.print_exc()
                print sys.exc_info()
            finally:
                dlv.settle()
Esempio n. 8
0
class Decoder:

    def __init__(self, *handlers):
        self.__message = Message()
        self.handlers = handlers

    def on_delivery(self, event):
        if hasattr(event, "message"):
            return
        if self.__message.recv(event.link):
            event.message = self.__message
            dlv = event.delivery
            assert dlv.encoded
            try:
                event.dispatch(event.root, ENCODED_MESSAGE)
                event.dispatch(event.root, MESSAGE)
                dlv.update(Delivery.ACCEPTED)
            except:
                dlv.update(Delivery.REJECTED)
                # XXX: no cause?
                # XXX: no rethrow?
            finally:
                dlv.settle()