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()
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()