示例#1
0
    def __init__(self, outgoing_publishes):
        self.max_inflight = 1

        assert isinstance(outgoing_publishes, OutgoingPublishesBase)
        self.publishes = outgoing_publishes

        self.packets = deque()
        self.retrial_handles = dict()

        self.future = DummyFuture()
示例#2
0
    def clear(self):
        """
        Clears the in-memory state of the outgoing queue. The data in
        persistence is left as is. If there is any pending `Future`
        waiting for result, it is cancelled.
        """
        for packet_id in self.retrial_handles.keys():
            self.cancel_retrial(packet_id)

        self.packets.clear()
        self.retrial_handles.clear()

        if not self.future.done():
            msg = 'Outgoing queue was cleansed'
            self.future.set_exception(CancelledException(msg))

        self.future = DummyFuture()