インジェスチョンスケジューラリファレンス¶
データベースオブジェクトとプロシージャ¶
次のプロシージャはファイル 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();
}
}