Référence du planificateur d’ingestion

Objets et procédures de la base de données

Les procédures suivantes sont créées par le fichier scheduler/scheduler.sql.

PUBLIC.CREATE_SCHEDULER()

Cette procédure sert de point d’entrée entre SQL et Java. Elle créera une tâche s’exécutant selon la planification disponible dans la table APP_STATE. Cette tâche exécutera la procédure ci-dessous PUBLIC.RUN_SCHEDULER_ITERATION() lorsqu’elle sera exécutée.

PUBLIC.RUN_SCHEDULER_ITERATION()

Cette procédure est un point d’entrée dans l’implémentation Java de la tâche de calendrier proprement dite. Elle sera appelée chaque fois que la tâche du planificateur sera exécutée.

PUBLIC.ON_INGESTION_SCHEDULED (process_id VARCHAR)

Cette procédure définit le flux d’ingestion pour un processus unique qui a été pris par le planificateur pour être exécuté. L’implémentation par défaut ne fait rien. Nous vous recommandons de l’implémenter en Java en utilisant l’interface OnIngestionScheduledCallback.

Gestionnaire (handler) personnalisé

La fonction de planification de l’ingestion consiste en deux gestionnaires (handlers) différents qui servent de point d’entrée entre SQL et Java :

  • CreateSchedulerHandler

  • RunSchedulerIterationHandler

Nous vous recommandons de ne personnaliser que cette dernière.

L’approche du constructeur

RunSchedulerIterationHandler peut être personnalisé à l’aide de RunSchedulerIterationHandlerBuilder. Ces objets d’aide permettent des implémentations personnalisées des interfaces sous-jacentes :

  • ConnectorErrorHelper

  • OnIngestionScheduledCallback

Dans le cas où ils ne sont pas fournis, les implémentations par défaut seront utilisées.

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