• /
  • EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Tutorial NerdGraph: Execute a consulta NRQL de forma assíncrona

Você pode usar o NerdGraph para executar a consulta NRQL. Além disso, você também pode usar o NerdGraph para executar uma consulta NRQL assíncrona. consultas assíncronas são executadas em segundo plano e você pode fazer solicitações de acompanhamento para recuperar os resultados da consulta ou o status da consulta. Esse tipo de consulta evita que uma consulta seja interrompida por problemas como tempo limite do browser ou tempo limite da conexão HTTP. É especialmente útil para executar consultas que podem levar muito tempo para serem concluídas.

Requisitos

Se você tiver o Data Plus, poderá executar a consulta assíncrona com duração máxima de 10 minutos usando o NerdGraph ou a UI do criador de consulta.

Para obter mais informações sobre limites de consulta, consulte Limites de consulta.

Exemplo de consulta assíncrono

Aqui está um exemplo de chamada de consulta assíncrona do NerdGraph. O async: true é o que torna a consulta assíncrona. Esta consulta retornará resultados se for concluída dentro do tempo limite padrão de 5 segundos; caso contrário, retornará dados queryProgress para uso em consultas de acompanhamento no campo nrqlQueryProgress .

{
actor {
account(id: YOUR_ACCOUNT_ID) {
nrql(query: "SELECT * FROM Transaction", async: true) {
results
queryProgress {
queryId
completed
retryAfter
retryDeadline
resultExpiration
}
}
}
}
}

Obtendo os resultados ou status de uma consulta assíncrona

Se a sua consulta exceder o tempo limite padrão, ela retornará um ID de consulta. Você pode pegar esse ID e executar uma segunda consulta para obter os resultados da consulta, se estiver concluída, ou então o status dessa consulta.

{
actor {
account(id: YOUR_ACCOUNT_ID) {
nrqlQueryProgress(queryId: "YOUR_QUERY_ID") {
results
queryProgress {
queryId
completed
retryAfter
retryDeadline
resultExpiration
}
}
}
}
}

Alguns detalhes importantes sobre esta consulta:

  • O queryId vem dos dados queryProgress retornados pela consulta assíncrono original.
  • O argumento account deve corresponder ao argumento account da consulta original.
  • Esta consulta retornará resultados se a execução do assíncrono for concluída; caso contrário, retornará queryProgress dados.
  • A consulta pode ser repetida literalmente até que resultados ou um erro sejam retornados.

Cancelar uma consulta assíncrona

Você pode cancelar uma consulta assíncrona usando a mutação cancelAsyncQuery . Esta mutação pega o queryId da consulta que você deseja cancelar.

mutation {
cancelAsyncQuery(queryId: "YOUR_QUERY_ID") {
queryToken
accepted
rejectionCause
}
}
Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.