def METHOD_NAME(self, handler: Callable):
    """
    Batch read messages from SQS queue with health check.
    """
    self._print('Start consuming messages.')
    consumer_thread = MessageConsumerThread(self, handler)
    # Start the consumer thread as the main thread
    consumer_thread.start()
    # Set the desired timeout
    health_check_thread = HealthCheckThread(
        self,
        consumer_thread,
        timeout_seconds=max(60, self.config.wait_time_seconds * 2),
    )
    # Start the health check thread as a daemon thread
    health_check_thread.daemon = True
    health_check_thread.start()
    # Wait for the consumer thread to finish (optional)
    consumer_thread.join()