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();
}
}