インジェスチョンスケジューラリファレンス

データベースオブジェクトとプロシージャ

次のプロシージャはファイル scheduler/scheduler.sql によって作成されます。

PUBLIC.CREATE_SCHEDULER()

このプロシージャは、 SQL とJava間のエントリポイントとして機能します。 APP_STATE テーブルで利用可能なスケジュールに従って実行されるタスクを作成します。このタスクは、実行されると以下の PUBLIC.RUN_SCHEDULER_ITERATION() プロシージャを実行します。

PUBLIC.RUN_SCHEDULER_ITERATION()

このプロシージャは、実際のスケジュールタスクのJava実装へのエントリポイントです。スケジューラタスクが実行されるたびに呼び出されます。

PUBLIC.ON_INGESTION_SCHEDULED (process_id VARCHAR)

このプロシージャでは、スケジューラによって実行のために取得された単一のプロセスの取り込みフローを定義します。デフォルトの実装では何も行われません。 OnIngestionScheduledCallback インターフェイスを使用してJavaでこれを実装することをお勧めします。

カスタムハンドラー

インジェスチョンスケジューラ機能は、 SQL からJavaへのエントリポイントとして動作する2つの異なるハンドラーで構成されています。

  • CreateSchedulerHandler

  • RunSchedulerIterationHandler

後者のみをカスタマイズすることをお勧めします。

ビルダーアプローチ

RunSchedulerIterationHandler は、 RunSchedulerIterationHandlerBuilder を使用してカスタマイズできます。このヘルパーオブジェクトを使用すると、基盤となるインターフェイスのカスタム実装が可能になります。

  • ConnectorErrorHelper

  • OnIngestionScheduledCallback

指定されていない場合は、デフォルトの実装が使用されます。

class CustomOnIngestionScheduledCallback implements OnIngestionScheduledCallback {
    @Override
    public void onIngestionScheduled(String processId) {
        // CUSTOM LOGIC
    }
}

class CustomHandler {

    // Path to this method needs to be specified in the PUBLIC.RUN_SCHEDULER_ITERATION procedure using SQL
    public static Variant runIteration(Session session) {
        return RunSchedulerIterationHandler.builder(session)
            .withOnIngestionScheduledCallback(new CustomOnIngestionScheduledCallback())
            .build()
            .runIteration()
            .toVariant();
    }
}
Copy