クエリの再送信とバックアップリコメンデーション(Javascript)

まれに、LiftIgniterのJavascript SDKがModelサーバからのレスポンスと受け取れない場合があります。これは通常ではネットワーク接続の問題に起因しますが、サーバ側のエラーとクライアント側のエラーについても同様です。

これらの問題を解決するために2つの仕組みを使っています。

  • クエリの再送信
  • バックアップリコメンデーション

クエリの再送信

最初のレスポンスがクエリを送ってから4.3秒以内に受け取れない場合は、クライアントはクエリの再送信を行います。再送信はquery.petametrics.comではなく、query1.petametrics.comに送られます。

query.petametrics.comが、LiftIgniterが稼働している、地理的に最も近いサーバ(サーバの地理的情報については、連続稼働時間と遅延時間のドキュメントを参照してください)に名前解決するのに対し、query1.petametrics.comはそれ以外のサーバに名前解決を行います。例えば、query.petametrics.comがLiftIgniterのus-east-1に地理的に近いユーザに対してus-east-1に名前解決しても、query1.petametrics.comはLiftIgniterのus-west-1のサーバに名前解決するようなケースがこれにあたります。

再送信されたクエリは、リコメンデーションでリクエストされたルールに従います。

関連する設定として、$p("init")を下記のとおり変更することができます:

  • Config.sdk.backupQueryServerは、バックアップクエリサーバと指定する文字列です。デフォルトは、"//query1.petametrics.com"です。
  • Config.sdk.retryは、trueまたはfalseの値で、クエリの再送信を有効にするかを指定します。デフォルトは、trueです。

この設定を変更する場合は、LiftIgniterにご連絡ください。お客様の目的にあった方法を提案します。

バックアップリコメンデーション(ルールに従わない)

query.petametrics.comまたはquery1.petametrics.comから10秒以内にレスポンスが受け取れない場合は、古いリコメンデーションを表示します。バックアップリコメンデーションは、最初にquery.petametrics.comにクエリを送ってから2.5秒以内にレスポンスがない場合に、CDNから取得します。

バックアップリコメンデーションは、性的なもので、リコメンデーションでリクエストされたルールに従わない場合があります。もし複雑なルール構造を採用している場合は、お客様側でバックアップリコメンデーションを処理する場合は、LiftIgniterからのバックアップリコメンデーションを停止することもできます。

関連する設定として、$p("init")を下記のとおり変更することができます:

Config.sdk.enableBackupは、trueまたはfalseの値で、バックアップリコメンデーションを有効にするかを指定します。デフォルトは、trueです。

バックアップリコメンデーションは、コンテキストを持たない(APIキーを除く)クエリから取得され、その結果をCDNにストアしています。この結果は二時間ごとに更新され、以前の値も存続します。

この設定を変更する場合は、LiftIgniterにご連絡ください。お客様の目的にあった方法を提案します。