• /
  • EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

NerdGraphチュートリアル:NRQLクエリを非同期で実行する

NerdGraph を使用して NRQL クエリを実行できます。さらに、NerdGraph を使用して非同期 NRQL クエリを実行することもできます。非同期クエリはバックグラウンドで実行され、フォローアップ リクエストを作成して、クエリ結果またはクエリ ステータスを取得できます。このタイプのクエリは、ブラウザのタイムアウトや HTTP 接続のタイムアウトなどの問題によってクエリが中断されるのを回避します。これは、完了までに長い時間がかかるクエリを実行する場合に特に便利です。

要件

Data Plusをお持ちの場合は、NerdGraph またはクエリ ビルダー UI を使用して、最大 10 分間の非同期クエリを実行できます。

クエリ制限の詳細については、 「クエリ制限」を参照してください。

非同期クエリの例

これは、非同期クエリのNerdGraph呼び出しの例です。async: trueは、クエリを非同期にするものです。このクエリは、デフォルトのタイムアウトである5秒以内に完了すると、結果を返します。それ以外の場合は、 nrqlQueryProgressフィールドへのフォローアップクエリで使用するためにqueryProgressデータを返します。

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

非同期クエリの結果またはステータスを取得する

クエリがデフォルトのタイムアウトを超えると、クエリIDが返されます。そのIDを取得し、2番目のクエリを実行して、クエリ結果(終了している場合)、またはそのクエリのステータスを取得できます。

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

このクエリに関するいくつかの重要な詳細:

  • queryIdは、元の非同期クエリによって返されたqueryProgressデータから取得されます。
  • account引数は、元のクエリのaccount引数と一致する必要があります。
  • このクエリは、非同期実行が完了した場合に結果を返します。それ以外の場合は、 queryProgressデータを返します。
  • 結果またはエラーが返されるまで、クエリを逐語的に繰り返すことができます。

非同期クエリをキャンセルする

cancelAsyncQueryミューテーションを使用して非同期クエリをキャンセルできます。 このミューテーションは、キャンセルするクエリのqueryIdを取得します。

mutation {
cancelAsyncQuery(queryId: "YOUR_QUERY_ID") {
queryToken
accepted
rejectionCause
}
}
Copyright © 2024 New Relic株式会社。

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