Static Starter Service

Funktion

Der Microservice sendet statisch konfigurierte Zeiträume (von-Datum bis-Datum) der zu archivierenden Nachrichten in die Work Package Queue. Der Zeitraum wird in einem konfigurierbarem Intervall unterteilt, um den Archivierungsprozess in kleinere Pakete zu unterteilen.

Konfiguration

Die Konfiguration des Microservices geschieht über die im “docker-compose”-Datei angegebene “application.yml”. Für die Konfiguration der Placeholder siehe Installation.

Das Standard Docker Image enthält die folgenden Konfigurationsmöglichkeiten:

spring:
  rabbitmq:
      host: ${RABBITMQ_HOST}
      port: ${RABBITMQ_PORT}
      username: ${RABBITMQ_USER}
      password: ${RABBITMQ_PASSWORD}
production_queue: work_package_queue
starter:
  period-from: ${PERIOD_FROM_STATIC}
  period-to: ${PERIOD_TO_STATIC}
  split-interval-in-minutes: ${SPLIT_INTERVAL_IN_MINUTES}

Tägliche nachträgliche Archivierung

Für das schrittweise Nachholen größerer Zeiträume enthält das docker-services-environment im Verzeichnis retrospective-archiving ein Skript, eine Konfigurationsdatei und eine Cron-Vorlage.

Bei jedem Aufruf verarbeitet retrospective-archiving.sh das erste noch nicht auskommentierte Datumsintervall aus retrospective-config.txt. Das Skript startet den static-starter-service mit diesem Zeitraum und kommentiert die verarbeitete Zeile anschließend mit einem Zeitstempel aus. Jeder weitere Aufruf verarbeitet das nächste offene Intervall. Dadurch kann das Skript bei Bedarf auch mehrfach am selben Tag gestartet werden.

Sind keine offenen Intervalle mehr vorhanden, beendet sich das Skript ohne einen weiteren Archivierungslauf.

Die Konfigurationsdatei enthält pro Zeile ein inklusiv-exklusives Datumsintervall:

2022-05-21 00:00:00 - 2022-05-23 00:00:00

Leere und mit # beginnende Zeilen werden ignoriert.

Die benötigten Intervalle können mit dem Konfigurationsgenerator erstellt und anschließend in retrospective-config.txt übernommen werden.

Verarbeitete Zeilen enthalten einen Zeitstempel:

#2022-05-21 00:00:00 - 2022-05-23 00:00:00 processed 2026-07-29 09:15:00

Installation auf dem Server

  1. Das Verzeichnis retrospective-archiving/retrospective-archiving aus dem Repository nach <verzeichnis>/retrospective-archiving kopieren.
  2. Das Skript ausführbar machen: chmod 755 retrospective-archiving/retrospective-archiving.sh
  3. Die Cron-Vorlage installieren:
    cp retrospective-archiving/archive-retrospective.cron /etc/cron.d/archive-retrospective
    chown root:root /etc/cron.d/archive-retrospective
    chmod 644 /etc/cron.d/archive-retrospective
    
  4. Den Pfad und die Ausführungszeit in der kopierten Cron-Datei anpassen.
  5. retrospective-config.txt mit den gewünschten Intervallen befüllen.

Der Cronjob startet das Skript täglich um 09:00 Uhr. Die Ausgabe wird in <verzeichnis>/retrospective-archiving/cron-log.txt geschrieben. Die mitkopierte README.txt dokumentiert den Prozess auf dem Server.

Betrieb

Das Skript kann bei Bedarf manuell aus dem Installationsverzeichnis gestartet werden:

./retrospective-archiving.sh

Das Protokoll des Cronjobs wird in cron-log.txt geschrieben.

Neue Intervalle werden als nicht auskommentierte Zeilen in retrospective-config.txt eingefügt.

Releases

Der Service wird in den folgenden Versionen als Docker Container aus dem Repo docker-nob-erp.next-level-apps.com/static-starter-service bereitgestellt.

Bis zur Version 2022-11-23-02 heißt das Image des static-starter-service noch docker-nob-erp.next-level-apps.com/starter-service.

2022-11-23-02

Ticket Beschreibung
BTOB-8713 Behebung der Probleme beim Start

2021-07-23

Ticket Beschreibung
BTOB-7534 Umbenennung mit “static” und Verwendung des Services als Tool
BTOB-7514 Initiale Entwicklung
View Me   Edit Me