まれに、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にご連絡ください。お客様の目的にあった方法を提案します。