def __init__(self, alias=None, consumer=None, buffer_size=0, number_of_consumer=1, skip_on_error=False, inbound_counter=None, outbound_counter=None, consumer_exception_handler=None, **kwargs): self._alias = alias self._logger = _get_logger(__name__) self._buffer_size = buffer_size self._consumer = consumer self._number_of_consumer = number_of_consumer self._active_consumer_counter = AtomicCounter() self._skip_on_error = skip_on_error self._inbound_counter = inbound_counter if inbound_counter is not None else AtomicCounter() self._outbound_counter = outbound_counter if outbound_counter is not None else AtomicCounter() self._inbound = Queue(self._buffer_size) self._outbound = None self._consumer_exception_handler = consumer_exception_handler self._additional_properties = kwargs