private void monitorQueryExecution(final ExecutionContext executionContext,
      final long maxQueryExecutionTime) {

    // cq query is not monitored
    if (executionContext.isCqQueryContext()) {
      return;
    }

    executionContext
        .setCancellationTask(scheduleCancelationTask(executionContext, maxQueryExecutionTime));

    if (logger.isDebugEnabled()) {
      logDebug(executionContext, "Adding thread to QueryMonitor.");
    }
  }
Each query can have a different maxQueryExecution time. Make this method public to expose that
feature to callers.

Must not be called from a thread that is not the query thread, because this class uses a
ThreadLocal on the query thread!
geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryMonitor.java