X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=doc%2Fhtml%2Fch02s07.html;h=3af3cd816a8d1bd1c255c821ec2ef4ed532f511e;hb=f044d58d95464652f923f0c27d74566f72c1fb47;hp=ded915adb6ab1e27a96d0397fa894f8bad5e2725;hpb=ffda56c80e03669ac3a0463f90067a07e1d36132;p=kivitendo-erp.git diff --git a/doc/html/ch02s07.html b/doc/html/ch02s07.html index ded915adb..3af3cd816 100644 --- a/doc/html/ch02s07.html +++ b/doc/html/ch02s07.html @@ -1,6 +1,6 @@ - 2.7. Der Task-Server

2.7. Der Task-Server

Der Task-Server ist ein Prozess, der im Hintergrund läuft, in + 2.7. Der Task-Server

2.7. Der Task-Server

Der Task-Server ist ein Prozess, der im Hintergrund läuft, in regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser Prozess wird u.a. für die Erzeugung der wiederkehrenden Rechnungen und weitere @@ -8,12 +8,17 @@ konfiguriert werden. Danach wird er für jeden Mandanten, für den er laufen soll, in der Adminsitrationsmaske eingeschaltet.

Beachten Sie, dass der Task-Server in den Boot-Vorgang Ihres Servers integriert werden muss, damit er automatisch gestartet wird. - Dies kann kivitendo nicht für Sie erledigen.

Da der Taskserver als Perlscript läuft, wird Arbeitsspeicher, der + Dies kann kivitendo nicht für Sie erledigen.

Da der Task-Server als Perlscript läuft, wird Arbeitsspeicher, der einmal benötigt wurde, nicht mehr an das Betriebssystem zurückgegeben, - solange der Taskserver läuft. Dies kann dazu führen, dass ein länger - laufender Taskserver mit der Zeit immer mehr Arbeitsspeicher für sich - beansprucht. Es ist deshalb sinnvoll, dass der Taskserver in - regelmässigen Abständen neu gestartet wird.

2.7.1. Verfügbare und notwendige Konfigurationsoptionen

Die Konfiguration erfolgt über den Abschnitt + solange der Task-Server läuft. Dies kann dazu führen, dass ein länger + laufender Task-Server mit der Zeit immer mehr Arbeitsspeicher für sich + beansprucht. Es ist deshalb sinnvoll, dass der Task-Server in + regelmässigen Abständen neu gestartet wird. Allerdings berücksichtigt der + Task-Server ein Memory-Limit, wenn dieses in der Konfigurationsdatei + angegeben ist. Bei Überschreiten dieses Limits beendet sich der + Task-Server. Sofern der Task-Server als systemd-Service mit dem + mitgelieferten Skript eingerichtet wurde, startet dieser danach + automatisch erneut.

2.7.1. Verfügbare und notwendige Konfigurationsoptionen

Die Konfiguration erfolgt über den Abschnitt [task_server] in der Datei config/kivitendo.conf. Die dort verfügbaren Optionen sind:

@@ -39,7 +44,7 @@ Links aus einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess einzubinden. Da das bei neueren Linux-Distributionen aber nicht zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die - anstelle eines symbolischen Links verwendet werden können.

2.7.3.1. SystemV-basierende Systeme (z.B. ältere Debian, ältere + anstelle eines symbolischen Links verwendet werden können.

2.7.3.1. SystemV-basierende Systeme (z.B. ältere Debian, ältere openSUSE, ältere Fedora)

Kopieren Sie die Datei scripts/boot/system-v/kivitendo-task-server nach /etc/init.d/kivitendo-task-server. Passen @@ -47,12 +52,12 @@ DAEMON=....). Binden Sie das Script in den Boot-Prozess ein. Dies ist distributionsabhängig:

  • Debian-basierende Systeme:

    update-rc.d kivitendo-task-server defaults
     insserv kivitendo-task-server
  • Ältere openSUSE und ältere Fedora:

    chkconfig --add kivitendo-task-server

Danach kann der Task-Server mit dem folgenden Befehl gestartet - werden:

/etc/init.d/kivitendo-task-server start

2.7.3.2. Upstart-basierende Systeme (z.B. Ubuntu bis 14.04)

Kopieren Sie die Datei + werden:

/etc/init.d/kivitendo-task-server start

2.7.3.2. Upstart-basierende Systeme (z.B. Ubuntu bis 14.04)

Kopieren Sie die Datei scripts/boot/upstart/kivitendo-task-server.conf nach /etc/init/kivitendo-task-server.conf. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile exec ....).

Danach kann der Task-Server mit dem folgenden Befehl gestartet - werden:

service kivitendo-task-server start

2.7.3.3. systemd-basierende Systeme (z.B. neure openSUSE, neuere + werden:

service kivitendo-task-server start

2.7.3.3. systemd-basierende Systeme (z.B. neure openSUSE, neuere Fedora, neuere Ubuntu und neuere Debians)

Kopieren Sie die Datei scripts/boot/systemd/kivitendo-task-server.service nach /etc/systemd/system/. Passen Sie in der @@ -63,7 +68,11 @@ insserv kivitendo-task-server

  • Ältere openSUSE aus:

    systemctl daemon-reload
     systemctl enable kivitendo-task-server.service

    Wenn Sie den Task-Server jetzt sofort starten möchten, anstatt den Server neu zu starten, so können Sie das mit dem folgenden - Befehl tun:

    systemctl start kivitendo-task-server.service
  • 2.7.4. Wie der Task-Server gestartet und beendet wird

    Der Task-Server wird wie folgt kontrolliert:

    ./scripts/task_server.pl Befehl

    + Befehl tun:

    systemctl start kivitendo-task-server.service

    Ein so eingerichteter Task-Server startet nach Beendigung + automatisch erneut. Das betrifft eine Beendigung über die Oberfläche, + eine Beendingung über die Prozesskontrolle und eine Beendigung bei + Überschreiten des Memory-Limits. Soll der Task-Server nicht erneut + starten, so können Sie ihn mit folgendem Befehl stoppen:

    systemctl stop kivitendo-task-server.service

    2.7.4. Wie der Task-Server gestartet und beendet wird

    Der Task-Server wird wie folgt kontrolliert:

    ./scripts/task_server.pl Befehl

    Befehl ist dabei eine der folgenden Optionen:

    • start startet eine neue Instanz des @@ -76,4 +85,35 @@ systemctl enable kivitendo-task-server.service

      Wenn Sie den Task-Server status berichtet, ob der Task-Server läuft.

    Der Task-Server wechselt beim Starten automatisch in das kivitendo-Installationsverzeichnis.

    Dieselben Optionen können auch für die SystemV-basierenden - Runlevel-Scripte benutzt werden (siehe oben).

    \ No newline at end of file + Runlevel-Scripte benutzt werden (siehe oben).

    Wurde der Task-Server als systemd-Service eingerichtet (s.o.), + so startet dieser nach Beendigung automatisch erneut.

    2.7.5. Exemplarische Konfiguration eines Hintergrund-Jobs, der die Jahreszahl in allen Nummernkreisen zum Jahreswechsel erhöht

    Hintergrund-Jobs werden über System -> Hintergrund-Jobs und Task-Server -> Aktuelle Hintergrund-Jobs anzeigen -> Aktions-Knopf 'erfassen' angelegt.

    Nachdem wir über das Menü dort angelangt sind, legen wir unseren exemplarischen Hintergrund-Jobs "Erhöhung der Nummernkreise" mit folgenden Werten an:

    • + Aktiv: Hier ein 'Ja' auswählen

    • + Ausführungsart: 'wiederholte Ausführung' auswählen

    • + Paketname: 'SetNumberRange' auswählen

    • + Ausführungszeitplan: Hier entsprechend Werte wie in der crontab eingeben.

      Syntax:

      * * * * *
      +┬ ┬ ┬ ┬ ┬
      +│ │ │ │ │
      +│ │ │ │ └──── Wochentag (0-7, Sonntag ist 0 oder 7)
      +│ │ │ └────── Monat (1-12)
      +│ │ └──────── Tag (1-31)
      +│ └────────── Stunde (0-23)
      +└──────────── Minute (0-59)  

      Die Sterne können folgende Werte haben:

      +1 2 3 4 5
      +
      +1 = Minute (0-59)
      +2 = Stunde (0-23)
      +3 = Tag (0-31)
      +4 = Monat (1-12)
      +5 = Wochentag (0-7, Sonntag ist 0 oder 7)
      +

      Um die Ausführung auf eine Minute vor Sylvester zu setzen, müssen die folgenden Werte eingetragen werden:

      59 23 31 12 *
    • + Daten:In diesem Feld können optionale Parameter für den Hintergrund im JSON-Format gesetzt werden. Der Hintergrund-Job SetNumberRange akzeptiert zwei Variable nämlich digit_year sowieso multiplier.

      + digit_year kann zwei Werte haben entweder 2 oder 4, darüber wird gesteuert ob die Jahreszahl zwei oder vierstellig kodiert wird (für 2019, dann entweder 19 oder 2019). Der Standardwert ist vierstellig.

      + multiplier ist ein Vielfaches von 10, darüber wird die erste Nummer im Nummernkreis (die Anzahl der Stellen) wie folgt bestimmt:

      +multiplier     Nummernkreis 2020
      +10        ->   20200
      +100       ->   202000
      +1000      ->   2020000
      +

      Wir gehen jetzt beispielhaft von einer letzten Rechnungsnummer von RE2019456 aus. Demnach sollte ab Januar 2020 die erste Nummer RE2020001 sein. Da der Task auch Präfixe berücksichtigt, kann dies mit folgenden JSON-kodierten Werten umgesetzt werden:

      + Daten: +

      multiplier: 100
      +digits_year: 4
    \ No newline at end of file