> For the complete documentation index, see [llms.txt](https://goldenore.gitbook.io/goldenore-cdc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://goldenore.gitbook.io/goldenore-cdc/moduly-goldenore-cdc/cdc-monitoring/zadania.md).

# Zadania

W tej sekcji opisane są typy Zadań i instrukcja jak dodać nowy typ zadań

## ScheduledTask

Ten typ Zadania obsługuje dwa sposoby periodycznego uruchamiania:

* interwał - co określoną ilość sekund, minut, godzin, dni
* cron - w określonym momencie zgodnie z podaną wartością w formacie cron (<https://crontab.guru/>) - po wywołaniu Zadania obliczany jest następny moment, kiedy ma być wywołane. <https://help.qlik.com/en-US/compose/May2022/Content/ComposeDWDL/Main/DW/Cron%20Format%20and%20Examples/cron_format_and_example.htm>

### ConnectorStateTask

Ten typ tasks monitoruje stan konektora w kafka connect. Jeśli konkretor się wywala (przechodzi w stan FAILED) lub zrestartował (z RESTARTING -> na RUNNING) wywołuje Trigger

### KafkaStateTask

Ten typ tasks monitoruje stan kafka connect. Jeśli nie działa to wywołuje Trigger. Tylko jedno Zadanie tego typu może być uruchomiona

## Dodawanie nowych Zadań

Zakładamy, że nowe zadanie będzie dziedziczyć po ScheduledTask

1. Dodanie nowej wartości enum Task**Type**
2. Nadpisanie wszystkich klas związanych z Zadaniem
   1. ScheduledTask -> definiujemy funkcję **runCheck**, gdzie zapisujemy logikę Zadania
   2. ScheduledTaskBuilder -> definiujemy funkcje budujące instancję Zadania na podstawie options i global options
   3. ScheduledTaskOptions -> definiujemy indywidualne opcję potrzebne dla Zadania
   4. ScheduledTaskOptionsGlobal -> definiujemy globalne opcję potrzebne dla Zadania
   5. ScheduledTaskService -> definiujemy funkcje konieczne do obsługi life-cycle Zadania
   6. ScheduledTaskOptionsRepository -> repo dla Options
   7. ScheduledTaskOptionsPojo -> pojo, mapowane z i do Options
   8. ScheduledTaskOptionsGlobalRepository -> repo dla GlobalOptions
   9. ScheduledTaskOptionsGlobalPojo -> pojo, mapowane z i do GlobalOptions
3. Napisanie enuma z listą akcji w kontrolerze oraz kontrolera obsługującego lifecycle Zadania pod ścieżką tasks/\[TASK\_TYPE]
