io.prestosql.execution.QueryManager.getQueryState()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(6.1k)|赞(0)|评价(0)|浏览(79)

本文整理了Java中io.prestosql.execution.QueryManager.getQueryState方法的一些代码示例,展示了QueryManager.getQueryState的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryManager.getQueryState方法的具体详情如下:
包路径:io.prestosql.execution.QueryManager
类名称:QueryManager
方法名:getQueryState

QueryManager.getQueryState介绍

暂无

代码示例

代码示例来源:origin: io.prestosql/presto-main

private Response failQuery(QueryId queryId, PrestoException queryException)
{
  requireNonNull(queryId, "queryId is null");
  try {
    QueryState state = queryManager.getQueryState(queryId);
    // check before killing to provide the proper error code (this is racy)
    if (state.isDone()) {
      return Response.status(Status.CONFLICT).build();
    }
    queryManager.failQuery(queryId, queryException);
    // verify if the query was failed (if not, we lost the race)
    if (!queryException.getErrorCode().equals(queryManager.getQueryInfo(queryId).getErrorCode())) {
      return Response.status(Status.CONFLICT).build();
    }
    return Response.status(Status.OK).build();
  }
  catch (NoSuchElementException e) {
    return Response.status(Status.GONE).build();
  }
}

代码示例来源:origin: prestosql/presto

private Response failQuery(QueryId queryId, PrestoException queryException)
{
  requireNonNull(queryId, "queryId is null");
  try {
    QueryState state = queryManager.getQueryState(queryId);
    // check before killing to provide the proper error code (this is racy)
    if (state.isDone()) {
      return Response.status(Status.CONFLICT).build();
    }
    queryManager.failQuery(queryId, queryException);
    // verify if the query was failed (if not, we lost the race)
    if (!queryException.getErrorCode().equals(queryManager.getQueryInfo(queryId).getErrorCode())) {
      return Response.status(Status.CONFLICT).build();
    }
    return Response.status(Status.OK).build();
  }
  catch (NoSuchElementException e) {
    return Response.status(Status.GONE).build();
  }
}

代码示例来源:origin: io.prestosql/presto-main

if (queryManager.getQueryState(queryId) == QueryState.FAILED) {
  query.dispose();

代码示例来源:origin: prestosql/presto

if (queryManager.getQueryState(queryId) == QueryState.FAILED) {
  query.dispose();

代码示例来源:origin: prestosql/presto

private synchronized ListenableFuture<?> getFutureStateChange()
{
  // ensure the query has been submitted
  submissionFuture.submitQuery();
  // if query query submission has not finished, wait for it to finish
  if (!submissionFuture.isDone()) {
    return submissionFuture;
  }
  // if the exchange client is open, wait for data
  if (!exchangeClient.isClosed()) {
    return exchangeClient.isBlocked();
  }
  // otherwise, wait for the query to finish
  queryManager.recordHeartbeat(queryId);
  try {
    return queryDoneFuture(queryManager.getQueryState(queryId));
  }
  catch (NoSuchElementException e) {
    return immediateFuture(null);
  }
}

代码示例来源:origin: io.prestosql/presto-main

private synchronized ListenableFuture<?> getFutureStateChange()
{
  // ensure the query has been submitted
  submissionFuture.submitQuery();
  // if query query submission has not finished, wait for it to finish
  if (!submissionFuture.isDone()) {
    return submissionFuture;
  }
  // if the exchange client is open, wait for data
  if (!exchangeClient.isClosed()) {
    return exchangeClient.isBlocked();
  }
  // otherwise, wait for the query to finish
  queryManager.recordHeartbeat(queryId);
  try {
    return queryDoneFuture(queryManager.getQueryState(queryId));
  }
  catch (NoSuchElementException e) {
    return immediateFuture(null);
  }
}

代码示例来源:origin: prestosql/presto

public static void waitForQueryState(DistributedQueryRunner queryRunner, QueryId queryId, Set<QueryState> expectedQueryStates)
    throws InterruptedException
{
  QueryManager queryManager = queryRunner.getCoordinator().getQueryManager();
  do {
    // Heartbeat all the running queries, so they don't die while we're waiting
    for (BasicQueryInfo queryInfo : queryManager.getQueries()) {
      if (queryInfo.getState() == RUNNING) {
        queryManager.recordHeartbeat(queryInfo.getQueryId());
      }
    }
    MILLISECONDS.sleep(500);
  }
  while (!expectedQueryStates.contains(queryManager.getQueryState(queryId)));
}

代码示例来源:origin: prestosql/presto

@Test(timeOut = 60_000L)
public void testFailQuery()
    throws Exception
{
  QueryManager queryManager = queryRunner.getCoordinator().getQueryManager();
  QueryId queryId = queryManager.createQueryId();
  queryManager.createQuery(
      queryId,
      new TestingSessionContext(TEST_SESSION),
      "SELECT * FROM lineitem")
      .get();
  // wait until query starts running
  while (true) {
    QueryState state = queryManager.getQueryState(queryId);
    if (state.isDone()) {
      fail("unexpected query state: " + state);
    }
    if (state == RUNNING) {
      break;
    }
    Thread.sleep(100);
  }
  // cancel query
  queryManager.failQuery(queryId, new PrestoException(GENERIC_INTERNAL_ERROR, "mock exception"));
  QueryInfo queryInfo = queryManager.getFullQueryInfo(queryId);
  assertEquals(queryInfo.getState(), FAILED);
  assertEquals(queryInfo.getErrorCode(), GENERIC_INTERNAL_ERROR.toErrorCode());
  assertNotNull(queryInfo.getFailureInfo());
  assertEquals(queryInfo.getFailureInfo().getMessage(), "mock exception");
}

代码示例来源:origin: io.prestosql/presto-main

@UsedByGeneratedCode
public void killQuery(String queryId, String message)
{
  QueryId query = parseQueryId(queryId);
  try {
    QueryState state = queryManager.getQueryState(query);
    // check before killing to provide the proper error message (this is racy)
    if (state.isDone()) {
      throw new PrestoException(NOT_SUPPORTED, "Target query is not running: " + queryId);
    }
    queryManager.failQuery(query, createKillQueryException(message));
    // verify if the query was killed (if not, we lost the race)
    if (!ADMINISTRATIVELY_KILLED.toErrorCode().equals(queryManager.getQueryInfo(query).getErrorCode())) {
      throw new PrestoException(NOT_SUPPORTED, "Target query is not running: " + queryId);
    }
  }
  catch (NoSuchElementException e) {
    throw new PrestoException(NOT_FOUND, "Target query not found: " + queryId);
  }
}

代码示例来源:origin: prestosql/presto

@UsedByGeneratedCode
public void killQuery(String queryId, String message)
{
  QueryId query = parseQueryId(queryId);
  try {
    QueryState state = queryManager.getQueryState(query);
    // check before killing to provide the proper error message (this is racy)
    if (state.isDone()) {
      throw new PrestoException(NOT_SUPPORTED, "Target query is not running: " + queryId);
    }
    queryManager.failQuery(query, createKillQueryException(message));
    // verify if the query was killed (if not, we lost the race)
    if (!ADMINISTRATIVELY_KILLED.toErrorCode().equals(queryManager.getQueryInfo(query).getErrorCode())) {
      throw new PrestoException(NOT_SUPPORTED, "Target query is not running: " + queryId);
    }
  }
  catch (NoSuchElementException e) {
    throw new PrestoException(NOT_FOUND, "Target query not found: " + queryId);
  }
}

相关文章