Ingestion scheduler reference¶
Database objects and procedures¶
The following procedures are created by the file scheduler/scheduler.sql
.
PUBLIC.CREATE_SCHEDULER()¶
This procedure acts as the entry point between SQL and Java. It will create a task running according to the schedule available in APP_STATE
table.
This task will execute below PUBLIC.RUN_SCHEDULER_ITERATION()
procedure when executed.
PUBLIC.RUN_SCHEDULER_ITERATION()¶
This procedure is an entry point to the Java implementation of the actual scheduling task. It will be invoked whenever the scheduler task is executed.
PUBLIC.ON_INGESTION_SCHEDULED (process_id VARCHAR)¶
This procedure defines the ingestion flow for a single process that was taken by the scheduler for execution. The default implementation does nothing.
We recommend implementing this in Java using the OnIngestionScheduledCallback
interface.
Custom handler¶
Ingestion scheduler feature consists of two different handlers acting as entry point from SQL to Java:
CreateSchedulerHandler
RunSchedulerIterationHandler
We recommend customizing only the latter one.
Builder approach¶
RunSchedulerIterationHandler
can be customized using RunSchedulerIterationHandlerBuilder
.
This helper objects allows for custom implementations of the underlying interfaces:
ConnectorErrorHelper
OnIngestionScheduledCallback
In case they are not provided the default implementations will be used.
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();
}
}