def feed_batch(self,
                   batch: List[VespaDocument],
                   schema: str,
                   concurrency: Optional[int] = None,
                   timeout: int = 60) -> FeedBatchResponse:
        """
        Feed a batch of documents to Vespa concurrently.

        Documents will be fed with `concurrency` concurrent pooled connections.

        Args:
            batch: List of documents to feed
            schema: Schema to feed to
            concurrency: Number of concurrent feed requests
            timeout: Timeout in seconds per request

        Returns:
            A FeedBatchResponse object
        """
        if not batch:
            return FeedBatchResponse(responses=[], errors=False)

        if concurrency is None:
            concurrency = self.feed_pool_size

        batch_response = conc.run_coroutine(
            self._feed_batch_async(batch, schema, concurrency, timeout)
        )

        return batch_response

        Feed a batch of documents to Vespa concurrently.

        Documents will be fed with `concurrency` concurrent pooled connections.

        Args:
            batch: List of documents to feed
            schema: Schema to feed to
            concurrency: Number of concurrent feed requests
            timeout: Timeout in seconds per request

        Returns:
            A FeedBatchResponse object
        
src/marqo/vespa/vespa_client.py