Der Zeitplaner: Vorlagen, Instanzen, Selbstheilung und Berechtigungen
Datenmodell des einzigen Zeitplaners, Verhältnis von Vorlagen- und Instanzzeilen, unterstützte Jobtypen, Regeln für Speichern und Zeilenaktionen, Selbstheilung und Inhaltsbereich.
Das System hat einen einzigen Zeitplaner. Die Vorlagenzeilen der Warteschlange (is_template = 1) legen das WANN für eine Firma, eine Unternehmensgruppe oder das System fest; der Catalog-Worker (masterdata/cronqueue.run) legt aus fälligen Vorlagen Instanzzeilen (is_template = 0) an und verarbeitet sie. Den Zeitpunkt berechnet der gemeinsame Zeitplanrechner (Minute, Stunde, Tag, Woche, Monat; Europe/Budapest).
Datenmodell
Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.
| Tabelle | Rolle | Hauptfelder |
|---|---|---|
cron_queue | Vorlagen und Instanzen | job_type, company_id, Unternehmensgruppe, is_template, next_run, Status, Nutzlast (z. B. email_task_id, check_code) |
cron_health | offene Befunde der Selbstheilung | Jobtyp, Befund, Status |
company | Zielfirma | nur lesend |
Speichern und Zeilenaktionen
- Jobtypen im Formular:
taxaccount,missingtaxreturn,email,email_commands,email_ai,taskdigest,taskrecurring,nav_invoice_query,nav_invoice_sync,nav_invoice_data,email_task,integrity_check,content_translate. - Ziel: Firma, Unternehmensgruppe oder bei Systemjobs (
email*,taskdigest,integrity_check) das System. Parametrisierte Jobs:email_task(Firma und Zeitpunkt aus der Aufgabe),integrity_check(Code der Prüfung). - Optionale Ergebnis-E-Mail (
mail_notify0–2, Kanal und Vorlage aus dem Mailmodul je Mandant). - Nach dem Speichern: nächster Lauf berechnet, Zeile zurückgelesen, Mail-Einstellung gespeichert. Bei Instanzzeilen ist nur
next_runänderbar. runnow: sofortige Instanzzeile(n), bei einer Gruppe je Mitgliedsfirma;next_runder Vorlage bleibt.stopselected: Vorlage → deaktivieren, Instanz → löschen.delete: physisches Löschen, Mailmodul-Einstellung deaktiviert.- Jede Aktion schreibt in den Protokollkanal
cron. enqueueDue(): öffentliche Methode der Runner-Brücke; legt aus fälligen Vorlagen Zeilen an und schiebtnext_runweiter; Recht:edit.
Selbstheilung
Der Endpunkt health führt aus, was der Worker alle 10 Minuten tut: unterbrochene selbsterhaltende Ketten ergänzen, länger als 60 Minuten laufende Zeilen zurücksetzen, verschobene E-Mail-Aufgaben-Zeitpläne korrigieren, verwaiste Vorlagen und Zeilen gelöschter Firmen bereinigen. Gemeldet werden nach 3 Versuchen tote Zeilen, mehr als 6 Stunden wartende Einträge und unbekannte Jobtypen. Antwort: Zahl der reparierten und offenen Einträge. Die Dienstbibliothek schreibt selbst SQL. Fehlende Tabelle: error_health_schema.
Fehler
error_job_type, error_target, error_object, error_object_no_company, error_duplicate_template, error_mail_template, error_save_not_created, error_next_run.
Berechtigungen
| Schlüssel | Einstufung | Endpunkte |
|---|---|---|
list | nicht eingestuft | Liste, Firmenauswahl |
add | keine Katalogzeile, daher entscheidet edit | Speichern als neu (canSave) |
edit | nicht in den Seeds | Formular, runnow, enable, disable, Mail-Optionen |
delete | nicht in den Seeds | delete; stop und stopselected mit delete oder edit |
statusdelete | BASE | im Seed, aber ohne Endpunkt; Verhalten nicht feststellbar |
health | nur Berechtigungseingabe | Selbstheilung |
debug | nicht in den Seeds | Listen-SQL |
Inhaltsbereich: Die Liste filtert nach filter_allowed_ids, die schreibenden Endpunkte nach idsInScope und scheduleInScope; systemweite Zeilen darf nur der Hauptadministrator verwalten.