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

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

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

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.
Copyright © 2024 New Relic Inc.

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