@Override
  protected void pollForRequests(List<RequestInfo> requestsToSend, Set<Integer> requestsToDrop) {
    Timer.Context timer = null;
    try {
      List<RequestInfo> newRequestsToSend = new ArrayList<>();
      pollNewRequests(newRequestsToSend, requestsToDrop);
      timer = routerMetrics.totalQuotaQueueingDelay.time();
      addToRequestQueue(newRequestsToSend);
      drainRequestQueue(requestsToSend);
    } catch (Exception e) {
      logger.error("Operation Manager poll received an unexpected error: ", e);
      routerMetrics.operationManagerPollErrorCount.inc();
    } finally {
      if (timer != null) {
        timer.stop();
      }
    }
  }
Constructor for {@link QuotaAwareOperationController} class.
@param suffix the suffix to associate with the thread names of this OperationController
@param defaultPartitionClass the default partition class to choose partitions from (if none is found in the
                             container config). Can be {@code null} if no affinity is required for the puts for
                             which the container contains no partition class hints.
@param accountService the {@link AccountService} to use.
@param networkClientFactory the {@link NetworkClientFactory} used by the {@link OperationController} to create
                            instances of {@link NetworkClient}.
@param clusterMap the cluster map for the cluster.
@param routerConfig the configs for the router.
@param responseHandler {@link ResponseHandler} object.
@param notificationSystem the notification system to use to notify about blob creations and deletions.
@param routerMetrics the metrics for the router.
@param kms {@link KeyManagementService} to assist in fetching container keys for encryption or decryption
@param cryptoService {@link CryptoService} to assist in encryption or decryption
@param cryptoJobHandler {@link CryptoJobHandler} to assist in the execution of crypto jobs
@param time the time instance.
@param nonBlockingRouter {@link NonBlockingRouter} object.
@throws IOException if the network components could not be created.
ambry-router/src/main/java/com/github/ambry/router/QuotaAwareOperationController.java