Jobs

Wiederkehrende Ausführung von Jobs und Skripten.

Jobs über Benutzeroberfläche steuern

Das folgende Feature befindet sich noch in Entwicklung und steht nur einigen Testkunden bereit. Falls die dargestellten Menüpunkte nicht verfügbar sind, wurde die Funktion noch nicht freigeschalten.

Wenn sie Squeeze selbst betreiben, stellen Sie sicher, dass das Jobsystem korrekt eingerichtet ist. Dies ist hier dokumentiert: Einrichten der Jobverwaltung SQUEEZE 2

In der Administration befinden sich die folgenden zwei Menüpunkte.

Skript-Übersicht

Hier werden Skripte des aktuellen Mandanten dargestellt. Diese Skripte können Sie als Jobs wiederkehrend starten.

image-1649143475429.png

Job-Verwaltung

Hier können Jobs für Job-Skripte eingerichtet werden.

image-1649143541365.png

Anlage eines Jobs

Es können beliebig viele Jobs für ein Script konfiguriert werden. Dabei stehen vorgefertigte Intervalle bereit. Sollten diese nicht ausreichen kann ein Cron-Ausdruck genutzt werden.

Wir empfehlen nicht ein Skript zu häufig oder mehrfach als Job zu konfigurieren. Handelt es sich bspw. bei einem Job um ein Stammdaten-Sync-Job, so kann es passieren, dass diese gleichzeitig ausgeführt werden.

Wir werden dieses System erweitern und entsprechend absichern, aktuell muss dies manuell beachtet werden.

image-1649143601222.png

Einrichten der Jobverwaltung

Falls Sie Squeeze nicht selbst betreiben, ist dieser Artikel nicht relevant. Vermutlich möchten Sie nur wissen, wie Jobs in der Benutzeroberfläche zu verwalten sind: Jobs über Benutzeroberfläche steuern

Einleitung

Ab Squeeze 2 sollen Jobs primär über die UI konfiguriert werden. Somit ist nur noch die Konfiguration eines einzelnen Jobs im Betriebssystems notwendig, der Rest geschieht dann über die UI.

In Squeeze 1 musste noch pro auszuführendem Job in Squeeze ein Job im Betriebssystem geplant werden. Das System ist in der Theorie weiterhin nutzbar, erzeugt allerdings administrativen Mehraufwand.

Job im Betriebssystem einrichten (ab Squeeze 2.5)

Für die Gewährleistung der zeitgesteuerten Ausführungen muss auf dem Host ein Job hinterlegt werden der das PHP-Job-Script squeezer jobs:schedule --all immer zur vollen Minute ausführt.

Dieses Skript ist verantwortlich für die eigentliche Job-Ausführung und führt je nach Parameter die Jobs aller Mandanten oder nur der angegebenen Mandanten aus.

Für weitere Informationen können alle Optionen mittels --help flag gelistet werden (siehe auch Einführung zur Squeeze 2.5 CLI):

image-1688040387563.png

Beispiel Linux

Auf Linux ist besonders darauf zu achten, dass Jobs mittels des www-data Users ausgeführt werden.

Falls SQUEEZE auf Linux betrieben wird, ist ein Cronjob (bspw. mittels sudo crontab -u www-data -e) einzurichten.

*/1 * * * * php /var/www/html/squeeze/squeezer jobs:schedule --all

Job im Betriebssystem einrichten (vor Squeeze 2.5)

Für die Gewährleistung der zeitgesteuerten Ausführungen muss auf dem Host ein Job hinterlegt werden der das PHP-Jobs-Script cli/jobs.php schedule immer zu vollen Minute ausführt.

Dieses Skript ist verantwortlich für die eigentliche Job-Ausführung und führt Jobs aller Mandanten aus.

Beispiel Linux

Auf Linux ist besonders darauf zu achten, dass Jobs mittels des www-data Users ausgeführt werden.

Falls SQUEEZE auf Linux betrieben wird, ist ein cronjob (bspw. mittels sudo crontab -u www-data -e) einzurichten.

*/1 * * * * php /var/www/html/squeeze/cli/jobs.php schedule

Beispiel Windows

In der Windows Aufgabenplanung (Task Scheduler) muss ein Task definiert werden, welcher als Trigger die folgenden Einstellungen aufweist:

image-1697025935085.png

Als Aktion muss die PHP Excutable aus dem SQUEEZE Installationsverzeichnis mit den CLI script jobs.php ausgeführt werden:

image-1697025969245.png

Ohne Angabe von Mandanten, werden die Jobs für alle SQUEEZE Mandanten geprüft. Der Mandant kann im Aufruf angegeben werden:

<INSTALLATIONS_PFAD_SQUEEZE>/htdocs/cli/jobs.php schedule <tenant>

Hinweis bzgl. Performance

Bei einem System mit vielen Mandanten kann es vorkommen, dass die Job-Ausführung länger dauert. Das ist im Kontext von Job-Skripten besonders kritisch, da sich ggf. Jobs "überholen" oder parallel ablaufen könnten. In solchen Fällen kontaktieren Sie bitte den DEXPRO Support, damit gemeinsam evaluiert werden kann, ob eine Sonderanpassung notwendig ist.

Cleanup-Job

Diese Seite dokumentiert, wie Squeeze Daten nach Ablauf ihrer Haltefrist löscht und welche Daten nicht gelöscht werden.

Squeeze 2

Verhalten

Ein Dokument in Squeeze 2 wird nicht mehr benötigt, wenn keine weiteren Bearbeitungsschritte mehr anstehen. Üblicherweise sind das Dokumente in den Steps "Verarbeitet" (Backup) und Gelöscht (Deleted). Squeeze hält diese Dokumente noch eine gewisse Zeit vor und löscht sie danach permanent. Hierbei werden die Dateien (Bilder und PDFs), Einträge in der SQL-DB und Suchindizes (in ElasticSearch) gelöscht, welche aus dem Dokument extrahiert wurden.

Ausgenommen sind Informationen, die für Audits relevant sind.

Haltefrist

Die Haltefrist gibt an wie lange ein Dokument gespeichert bleibt, nachdem es von Squeeze selbst nicht mehr benötigt wird. Als Admin kann man die aktuellen Einstellungen im "System"-Bereich der UI einsehen.

Um die Haltefrist einzustellen, muss man der Mandantenkonfiguration (s. Server- und Mandantenkonfiguration) dieses Objekt hinzufügen:

"cleanupJob": {
    "maxDocumentAge": "100",
    "maxLogAge": "0"
}

Eine maxDocumentAge vom Wert 0 bedeutet hierbei, dass Dokumente schnellstmöglich vom System gelöscht werden.

Auditlog

Die finale Löschung eines Dokuments wird ab Squeeze 2.3.4 im Auditlog (SQL Tabelle queueentrychanges) vermerkt. 

Squeeze 1

In Squeeze 1 werden Cleanup-Jobs anders gepflegt als in Squeeze 2. Diese Dokumentation wird aktuell nicht gepflegt, da wir uns auf die Verbesserung und Dokumentation des Cleanup-Jobs von Squeeze 2 konzentrieren.

Unlock-Job

Falls Dokumente von Nutzern gesperrt sein sollten, welche nicht mehr am Dokument arbeiten, kann der "unlock-documents" Job helfen. 

Zu finden ist der Job in der Jobverwaltung (Internal) unlock-documents. Standard mäßig läuft der Job alle 5 Minuten und entsperrt alle Dokumente, in welchen zurzeit nicht gearbeitet wird. 

unlock.jpg