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.

TabelleRolleHauptfelder
cron_queueVorlagen und Instanzenjob_type, company_id, Unternehmensgruppe, is_template, next_run, Status, Nutzlast (z. B. email_task_id, check_code)
cron_healthoffene Befunde der SelbstheilungJobtyp, Befund, Status
companyZielfirmanur lesend

Speichern und Zeilenaktionen

  1. 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.
  2. 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).
  3. Optionale Ergebnis-E-Mail (mail_notify 0–2, Kanal und Vorlage aus dem Mailmodul je Mandant).
  4. Nach dem Speichern: nächster Lauf berechnet, Zeile zurückgelesen, Mail-Einstellung gespeichert. Bei Instanzzeilen ist nur next_run änderbar.
  5. runnow: sofortige Instanzzeile(n), bei einer Gruppe je Mitgliedsfirma; next_run der Vorlage bleibt. stopselected: Vorlage → deaktivieren, Instanz → löschen. delete: physisches Löschen, Mailmodul-Einstellung deaktiviert.
  6. Jede Aktion schreibt in den Protokollkanal cron.
  7. enqueueDue(): öffentliche Methode der Runner-Brücke; legt aus fälligen Vorlagen Zeilen an und schiebt next_run weiter; 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üsselEinstufungEndpunkte
listnicht eingestuftListe, Firmenauswahl
addkeine Katalogzeile, daher entscheidet editSpeichern als neu (canSave)
editnicht in den SeedsFormular, runnow, enable, disable, Mail-Optionen
deletenicht in den Seedsdelete; stop und stopselected mit delete oder edit
statusdeleteBASEim Seed, aber ohne Endpunkt; Verhalten nicht feststellbar
healthnur BerechtigungseingabeSelbstheilung
debugnicht in den SeedsListen-SQL

Inhaltsbereich: Die Liste filtert nach filter_allowed_ids, die schreibenden Endpunkte nach idsInScope und scheduleInScope; systemweite Zeilen darf nur der Hauptadministrator verwalten.