自動データ同期
アンケートの回答を受け取ると、システムはJSONデータを指定されたURLに送信できます.
自動データ同期の設定
1. "設定" ページにアクセスします。アクセスする方法は2つあります:
- アンケート編集後に 保存 と 設定 をクリックします

- "マイアンケート" ページで Settings Home と Settings をクリックします

2. データ同期には2つの方法があります:
- 単一のアンケートの場合: 自動データ同期 をオンにし、同期先のURLを入力します。設定後、このアンケートの回答データがJSONとしてそのURLに送信されます。

- 全てのアンケートの場合: グローバルデータ同期 をクリックしてこの機能を有効にします。次に同期先のURLを入力します。設定後、すべての回答データがJSONとしてそのURLに送信されます。

3. デフォルトでは有効な回答のみが同期されます。必要に応じてこの機能を無効にできます。
4. デフォルト設定では失敗時に再試行しません。このオプションを有効にすると、8秒以内に応答が得られない場合に送信を失敗と見なして再試行します。

5. 同期ログにアクセスして、データ同期の状況を監視できます。
レスポンスデータの形式
プッシュの速度と成功率を確保するため、ほとんどの質問タイプでは質問および選択肢に対応する番号のみがプッシュされ、質問や選択肢のテキスト内容は送信されません。データ形式の内訳は次のとおりです:
- t1 は表示される質問番号を表し、q1 はシステム内部の質問番号を表します。注意:質問の位置が変わると t1 は q1 と一致しない場合があります。
- t1_q1_1 は複数テキストボックスおよびマトリックス質問タイプで最初の入力フィールドを指します。
- t1_q1_1_2 は表形式の質問で、1行目と2列目を示します。
- 閉じた質問タイプ(例:複数選択、チェックボックス、評価など)では、t1_q1":"1" にある "1" が選択されたオプションの順序を示します。
- 開放型の質問では、回答は回答者が入力した通りに表示されます。
- 多段ドロップダウン、定数合計、スライダー、マトリックススライダーなどの一部の質問タイプでは、選択されたオプションの内容が提供されます。
- コンジョイント分析では、あるコンセプトのすべての属性が表示されます。回答者がそのコンセプトを選択した場合は 'Yes' が表示され、選択していない場合は 'No' が表示されます。
アーキテクチャの推奨:データ受信と業務処理の分離
問題の説明
現在のアーキテクチャではデータ受信と業務処理が結合されており、次のような問題が発生します:
- 業務処理が失敗すると、失敗レスポンスを返し、それが再試行メカニズムを引き起こします。
- 再試行されたデータも失敗し、再試行ループが発生します。
提案する解決策
受信と処理を分離したアーキテクチャを採用します:
1. データ受信レイヤー
- データを受信したら、直ちに一時データプールに保存します。
- 保存に成功したら、直ちに成功レスポンスを返します。
2. 業務処理レイヤー
- 一時データプールから非同期にデータを取得して処理します。
- 処理の失敗が受信レイヤーの成功レスポンスに影響を与えることはありません。
解決策の利点
- チャネルのブロッキングを回避: 受信時に即座に成功を返すことで、業務処理の失敗によるチャネルの詰まりを防ぎます。
- 耐障害性の向上: 業務処理の失敗がデータ受信に影響を与えないため、独立した再試行メカニズムを設けることができます。
- パフォーマンスの向上: 受信レイヤーは迅速に応答し、業務処理は非同期かつ並列で実行できます。
- 保守の容易化: 責務を明確に分離することで、問題の特定がより正確になります。
重要な注意点
- 一時データプールの容量を十分に確保してください。
- データの蓄積を防ぐためのクリーンアップ機構を確立してください。
- データプールの状態と処理の成功率を監視してください。
- データ処理操作の冪等性を確保してください。
まとめ
データ受信と業務処理を分離することで、業務処理の失敗によるデータチャネルの詰まり問題を効果的に解消し、システム全体の安定性を向上させることができます。