def put(self, item):
        """Adds the passed in item object to the queue and calls :func:`flush` if the size of the queue is larger
        than :func:`max_queue_length`. This method does nothing if the passed in item is None.

        Args:
            item (:class:`contracts.Envelope`) item the telemetry envelope object to send to the service.
        """
        if not item:
            return
        self._queue.put(item)
        if self._queue.qsize() >= self._max_queue_length:
            self.flush()