10.6.3.1 ore_async_flag引数

特殊な制御引数ore_async_flagは、ジョブを同期で実行するか非同期で実行するかを決定します。デフォルト値はfalseです。

ore_async_flag引数の設定

  • 同期モードで関数を実行するには、ore_async_flagfalseに設定します。

    同期モードでは、SQL APIはHTTPコールが終了するのを待機し、HTTPレスポンスの準備ができると戻ります。

    デフォルトでは、rq*Eval2関数は同期で実行されます。デフォルトの接続タイムアウト制限は60秒です。同期モードは、ore_async_flagが設定されていない場合、またはfalseに設定されている場合に使用されます。

  • 非同期モードで関数を実行するには、ore_async_flagtrueに設定します。

    非同期モードでは、非同期ジョブがWebサーバーに発行された直後に、SQL APIはURLを返します。URLにはジョブIDが含まれており、これを使用してジョブ・ステータスをフェッチし、後続のSQLコールを実行できます。

非同期ジョブの発行例

次のコードでは、R関数RandomRedDots2は、引数ore_async_flagをtrueに設定して非同期モードで実行されます。

%script

set long 500

SELECT * FROM table(rqEval2(
    par_lst => '{"ore_async_flag":true, "ore_graphics_flag":true, "ore_service_level":"LOW"}',
    out_fmt => NULL,
    scr_name => 'RandomRedDots2'));

結果のVALUE列には、非同期ジョブのジョブIDが含まれるURLが示されます。

NAME
--------------------------------------------------------------------------------
VALUE
-------------------------------------------------------------------------------- 
https://<host_name>/oml/api/r-scripts/v1/jobs/<job_id>
1 row selected.