同期スクリプト実行と非同期スクリプト実行のタイムアウト

REST APIを使用して埋込みPython実行スクリプトを実行するとき、タイムアウトの動作は、同期モードと非同期モードのどちらを選択したかによって決まります。デフォルトでは、REST API関数エンドポイント・コールは同期モードで動作します。

  • 同期実行: デフォルトでは、REST API関数エンドポイント・コールは同期モードで実行されます。REST API関数は、スクリプト実行タイムアウトを設定しません。ただし、同期コールはHTTPサーバー・タイムアウト(通常は約120秒)によって制約されます。スクリプトにかかった時間がこのタイムアウトを超えると、サーバーは接続を終了します。スクリプトにかかる時間が長くなる可能性がある場合は、非同期実行の使用を検討してください。
  • 非同期実行: 同期HTTPサーバー・タイムアウトの120秒を超える可能性があるスクリプトには非同期モードを使用します。非同期モードを有効にするには、asyncFlagtrueに設定します(例: asyncFlag: true)。
    • 非同期実行のデフォルトのタイムアウトは、1800秒(30分)です。
    • タイムアウトは、timeoutパラメータ(秒)を設定することで調整できます。
    たとえば、非同期動作に対して最大7200秒(2時間)を許可するには、リクエストでtimeout=7200と設定します:
    curl -i -X POST --header "Authorization: Bearer <token>" \
      --header 'Content-Type: application/json' \
      --header 'Accept: application/json' \
      -d '{"input":"select * from tablename", "parameters":"{\"oml_input_type\":\"pandas.DataFrame\"}", "asyncFlag":true, "timeout":7200}' \
      "<oml-url>/api/py-scripts/v2/table-apply/scriptname"