Referência do agendador de ingestão

Objetos e procedimentos de banco de dados

Os procedimentos a seguir são criados pelo arquivo scheduler/scheduler.sql.

PUBLIC.CREATE_SCHEDULER()

Este procedimento atua como ponto de entrada entre SQL e Java. Ele criará uma tarefa em execução de acordo com a programação disponível na tabela APP_STATE. Esta tarefa será executada abaixo do procedimento PUBLIC.RUN_SCHEDULER_ITERATION() quando executado.

PUBLIC.RUN_SCHEDULER_ITERATION()

Este procedimento é um ponto de entrada para a implementação Java da tarefa de agendamento real. Ele será invocado sempre que a tarefa do agendador for executada.

PUBLIC.ON_INGESTION_SCHEDULED (process_id VARCHAR)

Este procedimento define o fluxo de ingestão para um único processo que foi levado pelo agendador para execução. A implementação padrão não faz nada. Recomendamos implementar isso em Java usando a interface OnIngestionScheduledCallback.

Manipulador personalizado

O recurso do agendador de ingestão consiste em dois manipuladores diferentes que atuam como ponto de entrada de SQL para Java:

  • CreateSchedulerHandler

  • RunSchedulerIterationHandler

Recomendamos personalizar apenas o último.

Abordagem do construtor

RunSchedulerIterationHandler pode ser personalizado usando RunSchedulerIterationHandlerBuilder. Esses objetos auxiliares permitem implementações personalizadas das interfaces subjacentes:

  • ConnectorErrorHelper

  • OnIngestionScheduledCallback

Caso não sejam fornecidas, as implementações padrão serão utilizadas.

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