Skip to content

[GetShipmentCompletionSlip] ウォームアップクエリの最適化および本番クエリとのパラメータ同期 #11

Description

@Hide-JZX100

課題背景

ネクストエンジンAPIでのウォームアップ(コールドスタート対策)は、「本番と同じクエリ(検索条件)を事前に実行することで、データベース側で実行計画やキャッシュを温めておくこと」を目的としています。
しかし、これまでは本番クエリとウォームアップクエリの検索パラメータに以下の乖離があり、実行計画がキャッシュされず、本番実行時にコールドスタート(処理遅延やタイムアウト)が再発するリスクがありました。

現状の乖離

  1. 日付の指定範囲: 本番は gtelte を指定しているが、ウォームアップは gte のみ。
  2. フィルタパラメータ: 自己都合キャンセル伝票などの不要なデータがAPIクエリレベルで考慮されておらず、GASのメモリ上でしかフィルタリングされていなかった。

対応内容

  1. APIパラメータレベルでのフィルタリング追加
    • 本番の伝票取得APIリクエスト(searchCompletedSlips)に、パラメータ 'receive_order_cancel_type_id-in': '0,3'(0: 有効な受注, 3: 統合によるキャンセル)を追加しました。これにより、自己都合キャンセルなどの不要な伝票がDBスキャンの段階で除外され、取得データ量が削減されます。
  2. ウォームアップクエリの完全同期
    • ウォームアップ関数(warmupAndScheduleMain)で送信するパラメータを、本番クエリと完全に一致(同一の fields リスト、日付の終了日 lte、キャンセル区分フィルタ cancel_type_id-in)させました。ウォームアップ側は limit: '1' のみを変数として保持します。
  3. テスト関数の追加
    • test_api.gs に、新しくなったウォームアップクエリを動作テストするための関数 runWarmupTest() を実装しました。

変更対象ファイル

  • 03_api.ネクストエンジンAPI.gs
  • 06_main.実行処理.gs
  • test_api.gs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions