X-Git-Url: http://wagnertech.de/git?p=kivitendo-erp.git;a=blobdiff_plain;f=doc%2Fhtml%2Fch02s07.html;fp=doc%2Fhtml%2Fch02s07.html;h=39312f80bab8db649d57a78a245cb6f06664ca44;hp=faa74720899df9be5ec7bedde70b096bf418d0a8;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44 diff --git a/doc/html/ch02s07.html b/doc/html/ch02s07.html index faa747208..39312f80b 100644 --- a/doc/html/ch02s07.html +++ b/doc/html/ch02s07.html @@ -1,53 +1,78 @@ - 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 essenzielle Aufgaben benutzt.

2.7.1. Verfügbare und notwendige Konfigurationsoptionen

Die Konfiguration erfolgt über den Abschnitt + 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 + essenzielle Aufgaben benutzt.

Der Task-Server muss einmalig global in der Konfigurationsdatei + 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 Task-Server als Perlscript läuft, wird Arbeitsspeicher, der + einmal benötigt wurde, nicht mehr an das Betriebssystem zurückgegeben, + 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:

- client -

Name oder Datenbank-ID eines vorhandenen kivitendo-Mandanten, der benutzt wird, um die zu verwendende - Datenbankverbindung auszulesen. Der Mandant muss in der Administration angelegt werden. Diese Option muss angegeben - werden.

Diese Option kam mit Release v3.x.0 hinzu und muss daher in Konfigurationen, die von älteren Versionen aktualisiert - wurden, ergänzt werden.

- login -

gültiger kivitendo-Benutzername, der z.B. als Verkäufer beim Erzeugen wiederkehrender Rechnungen benötigt wird. Der - Benutzer muss in der Administration angelegt werden. Diese Option muss angegeben werden.

run_as

Wird der Server vom Systembenutzer root gestartet, so wechselt er auf den mit run_as angegebenen Systembenutzer. Der Systembenutzer muss dieselben Lese- und Schreibrechte haben, wie auch der Webserverbenutzer (siehe see Manuelle Installation des Programmpaketes). Daher - ist es sinnvoll, hier denselben Systembenutzer einzutragen, + ist es erforderlich, hier denselben Systembenutzer einzutragen, unter dem auch der Webserver läuft.

debug -

Schaltet Debug-Informationen an und aus.

2.7.2. Automatisches Starten des Task-Servers beim Booten

Der Task-Server verhält sich von seinen Optionen her wie ein +

Schaltet Debug-Informationen an und aus.

2.7.2. Konfiguration der Mandanten für den Task-Server

Ist der Task-Server grundlegend konfiguriert, so muss + anschließend jeder Mandant, für den der Task-Server laufen soll, + einmalig konfiguriert werden. Dazu kann in der Maske zum Bearbeiten + von Mandanten im Administrationsbereich eine kivitendo-Benutzerkennung + ausgewählt werden, unter der der Task-Server seine Arbeit + verrichtet.

Ist in dieser Einstellung keine Benutzerkennung ausgewählt, so + wird der Task-Server für diesen Mandanten keine Aufgaben + ausführen.

2.7.3. Automatisches Starten des Task-Servers beim Booten

Der Task-Server verhält sich von seinen Optionen her wie ein reguläres SystemV-kompatibles Boot-Script. Außerdem wechselt er beim Starten automatisch in das kivitendo-Installationsverzeichnis.

Deshalb ist es möglich, ihn durch Setzen eines symbolischen 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.2.1. SystemV-basierende Systeme (z.B. Debian, ältere OpenSUSE, ältere Fedora Core)

Kopieren Sie die Datei + 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 Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile DAEMON=....). Binden Sie das Script in den Boot-Prozess ein. Dies ist distributionsabhängig:

  • Debian-basierende Systeme:

    update-rc.d kivitendo-task-server defaults
    -# Nur bei Debian Squeeze und neuer:
    -insserv kivitendo-task-server
  • Ältere OpenSUSE und ältere Fedora Core:

    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.2.2. Upstart-basierende Systeme (z.B. Ubuntu)

Kopieren Sie die Datei +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 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.2.3. systemd-basierende Systeme (z.B. neure OpenSUSE, neuere Fedora Core)

    Verlinken Sie die Datei scripts/boot/systemd/kivitendo-task-server.service nach - /etc/systemd/system/. Passen Sie in der kopierten Datei den Pfad zum Task-Server an (Zeile - ExecStart=.... und ExecStop=...). Binden Sie das Script in den Boot-Prozess ein. -

    Alle hierzu benötigten Befehle sehen so aus:

    cd /var/www/kivitendo-erp/scripts/boot/systemd
    -ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/

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

    systemctl start kivitendo-task-server.service

    2.7.3. Wie der Task-Server gestartet und beendet wird

    Der Task-Server wird wie folgt kontrolliert:

    ./scripts/task_server.pl Befehl

    + 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 + kopierten Datei den Pfad zum Task-Server an (Zeilen + ExecStart=.... und + ExecStop=...).

    Machen Sie anschließend das Script systemd bekannt, und binden + Sie es in den Boot-Prozess ein. Dazu führen Sie die folgenden Befehl + 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

    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 @@ -60,7 +85,35 @@ ln -s $(pwd)/kivitendo-task-server.service /etc/systemd/system/

      Danach k 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).

    2.7.4. Task-Server mit mehreren Mandanten

    Beim Task-Server werden der zu verwendende Mandant und Login-Name des Benutzers, unter dem der Task-Server laufen soll, in die - Konfigurationsdatei geschrieben. Hat man mehrere Mandanten, muss man auch mehrere Konfigurationsdateien anlegen.

    Die Konfigurationsdatei ist eine Kopie der Datei kivitendo.conf, wo in der Kategorie [task_server] die - gewünschten Werte für client und login eingetragen werden.

    Der alternative Task-Server wird dann mit folgendem Befehl - gestartet:

    ./scripts/task_server.pl -c config/DATEINAME.conf
    \ 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:

    \ No newline at end of file