-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
ppodsednik edited this page Jan 7, 2026
·
6 revisions
sequenceDiagram
participant ExtApp as External App
participant Manager as Manager REST API
participant Worker as Worker
participant JVM as External JVM (Plugin)
ExtApp->>Manager: schedule(process, payload)
Worker->>Manager: getNextScheduledProcess()
Manager-->>Worker: process + payload
Worker->>JVM: start PluginStarter with payload
JVM-->>Worker: execution result
Worker->>Manager: update process state (RUNNING, FINISHED, FAILED...)
-
Tomcat REST aplikace s Swagger dokumentací
-
Registry:
-
pcp_node– registrované Workery -
pcp_plugin– registrované pluginy -
pcp_profile– profily pluginů
-
-
Scheduling:
- externí aplikace volají
schedule→ procesPLANNED - Worker si proces vyzvedne →
NOT_RUNNING - Worker spouští JVM →
RUNNING→ reportuje stav →FINISHED/FAILED/KILLED
- externí aplikace volají
-
Batch / subprocesy:
- Plugin může sám schedulovat další procesy (
getScheduledProfiles()) - Manager preferuje batch affinity
- Plugin může sám schedulovat další procesy (
-
REST endpointy pro informace z tabulek, download logů, delete/kill procesů
-
Dashboard UI
Manager používá několik hlavních tabulek v databázi:
| Tabulka | Popis |
|---|---|
| pcp_node | Registrované Workery a jejich metadata |
| pcp_plugin | Registrované pluginy |
| pcp_profile | Profily pluginů, včetně JVM parametrů a payload definic |
| pcp_process | Naplánované a běžící procesy, jejich stav, batch_id, payload a logy |
-
Worker = framework + pluginy – Worker je aplikační framework, který poskytuje běhové prostředí:
- Polling smyčka, REST API, logování
- PluginStarter a PluginContext pro spuštění pluginů v separátním JVM
-
Plugin – konkrétní úloha, kterou Worker dokáže spustit (např.
import,index) -
Profil – konfigurace spuštění pluginu, obsahuje:
- payload, JVM parametry
- subprocesy, které plugin sám spouští (např.
ImportspouštíIndex)
-
Worker načte
profile.jsonkaždého pluginu při startu a registruje schopnosti u Managera -
Polling workflow:
- Worker se dotazuje Managera na naplánované procesy (
getNextScheduledProcess) - Spustí externí JVM pro daný plugin
- Reportuje stav procesu zpět do Managera
- Worker se dotazuje Managera na naplánované procesy (
Odkazy: Home, Plugin Build & Worker Build