Batchlauf einrichten

warning Hinweis

Schritt 1: Einrichtung eines Benutzers in PLANTA Project

more Vorgehensweise

Schritt 2: Erstellung/Einrichtung eines Makros mit der gewünschten Funktionalität

more Vorgehensweise

  • Im Modul Module ein neues Modul anlegen
  • Python-Makro für den gewünschten Einsatzzweck ergänzen.
  • Das Modul für den Batch-Benutzer als Startup-Makro, das bei jeder Anmeldung dieses Benutzers ausgeführt wird, definieren.
    • Alternativ im Start-Skript des Headless-Clients im Parameter PLANTA_MODULE die Modul-ID angeben (siehe hier)

Schritt 3: Manueller Start des Headless-Clients zur Erzeugung der Passwort-Datei

more Vorgehensweise
  • Aufruf-Template
    • warning Hinweis: dieser Befehl sowie die folgenden Beispiele sind einzeilig und werden nur aus Gründen der Lesbarkeit ggf. umgebrochen:

<Python-Interpreter> <Headless-Pfad>planta_headless.py --service=<Server>:<Port> --user=<BATCH-User> --auth_type=challenge --secret=<PW-Datei>

Parameter Beschreibung Beispiel Windows Beispiel Linux
<Python-Interpreter> Aufruf des jew. Python-Interpreters C:\Python27\python.exe /usr/local/bin/python2.7
<Headless-Pfad> Verzeichnispfad des Headless-Clients, absolut:
oder relativ zum aktuellen Verzeichnis:
C:\PLANTA\Jobs\Headless\
.\
/planta/jobs/headless/
./
<Server> Name oder IP-Adresse des PLANTA Servers localhost (wenn Ausführung auf Applikationsserver)
planta4711.planta.de
10.210.47.11
<Port> Verbindungsport zum Service Standard ist 21000 + Systemnr., z.B. 21001
<BATCH-User> Name des PLANTA Project Batch Benutzers BATCH
<PW-Datei> Pfad u. Name der zu erzeugenden Passwort-Datei .\auth_file ./auth_file

application Beispiel Windows

C:\Python27\python.exe C:\PLANTA\Jobs\Headless\planta_headless.py --service=planta4711:21001 --user=BATCH --auth_type=challenge --secret=C:\PLANTA\Jobs\Headless\auth_file

application Beispiel Linux

/usr/local/bin/python2.7 ./planta_headless.py --service=localhost:21210 --user=BATCH --auth_type=challenge --secret=./auth_file

  • Passworteingabe (das Passwort wird in einer verschlüsselter Datei abgelegt)
  • Einrichten der Rechte für die neu erstellte verschlüsselte Passwort-Datei (Schreib-/Leserechte ausschließlich für den Ausführenden des Python-Programms)

Schritt 4: Einrichtung des Jobs

more Vorgehensweise
  • Hierfür die folgenden Shell-/Batch-Skript-Templates anpassen:
    • Beim folgenden Skript im Abschnitt Parameter anpassen: die passenden Werte eintragen
    • als Datei (z.B. namens Headless.bat unter Windows oder namens headless.bsh unter Linux) im Headless-Cient-Verzeichnis abspeichern (der Datums-Zeitstempel ist hier abhängig vom lokalen Format und muss ggf. angepasst werden).
  • Beispiel Windows:
@ECHO OFF
REM BATCH
REM PLANTA Headless-Client: Durchführung von Batch-Jobs
REM Parameter anpassen:
REM --->
SET PYTHON="<Pfad zu Python (V. 2.6 oder 2.7)>"
SET HEADLESS_DIR="<Pfad zum Headless Client (PLANTA_PY)>"
SET SERVICE=<Serveradresse:Portnummer>
SET USER=BATCH
REM Falls das Arbeitspaket als Startmodul des Batch-Users definiert ist, bleibt dieser Parameter leer,
REM sonst wird hier die Modul-ID des auszuführenden Moduls eingetragen:
SET PLANTA_MODULE=
IF NOT "%PLANTA_MODULE%"=="" SET MODULE_PARAM=--module=%PLANTA_MODULE%
IF "%PLANTA_MODULE%"=="" SET MODULE_PARAM=
REM Falls Logging gewünscht ist, die folgenden Variablen aktivieren,
REM sowie unten den Skript-Aufruf mit Logging aktivieren und den ohne Logging deaktivieren:
REM SET LOG_DIR="<Pfad des Log-Verzeichnisses"
REM SET LOGFILE="<Präfix für die Log-Datei (z.B. PLANTA_Headless)>"
REM SET DATETIME=%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%
REM <---
SET AUTH_FILE=".\auth_file"
SET PLANTA_PY=".\planta_headless.py"
SET PLANTA_SH=%PLANTA_PY% --service=%SERVICE% --user=%USER% --auth_type=challenge --secret=%AUTH_FILE% %MODULE_PARAM%
cd %HEADLESS_DIR%
REM Variante ohne Logging:
%PYTHON% %PLANTA_SH% %*
REM Variante mit Logging:
REM forfiles -p %LOG_DIR% -m %LOGFILE%*.log -d -7 -c "cmd /c del @path"
REM %PYTHON% %PLANTA_SH% %* --timeout=-1 -vvv >> %LOG_DIR%\%LOGFILE%_%DATETIME%_%USER%.log
  • Beispiel Linux:
#!/bin/bash
# PLANTA Headless-Client: Durchführung von Batch-Jobs
# Parameter anpassen:
# --->
PYTHON="<Pfad zu Python (V. 2.6 oder 2.7)>"
HEADLESS_DIR="<Pfad zum Headless Client (PLANTA_PY)>"
SERVICE="<Serveradresse:Portnr.>"
USER="BATCH"
# Falls das Arbeitspaket als Startmodul des Batch-Users definiert ist, bleibt der folgende Parameter leer,
# sonst wird hier die Modul-ID des auszuführenden Moduls eingetragen:
PLANTA_MODULE=""

if [[ -z $PLANTA_MODULE ]]
then
MODULE_PARAM=""
else
MODULE_PARAM="--module=$PLANTA_MODULE"
fi

# Falls Logging gewünscht ist, die folgenden Variablen aktivieren, 
# sowie unten den Skript-Aufruf mit Logging aktivieren und den ohne Logging deaktivieren:
#LOG_DIR="<Pfad des Log-Verzeichnisses"
#LOGFILE="<Präfix für den Log-Datei-Namen (z.B. PLANTA_Headless)>"
#DATETIME=`date +20%y-%m-%d_%H-%M-%S`
# <---
AUTH_FILE="./auth_file"
PLANTA_PY="planta_headless.py"
PLANTA_SH="./$PLANTA_PY --service=$SERVICE --user=$USER --auth_type=challenge --secret=$AUTH_FILE $MODULE_PARAM"
cd $HEADLESS_DIR
# Variante ohne Logging:
$PYTHON $PLANTA_SH $*
# Variante mit Logging:
#find $LOG_DIR -type f -name "$LOGFILE*.log" -mtime +7 -print0 | xargs -0 rm -f
#$PYTHON $PLANTA_SH $* --timeout=-1 -vvv >> $LOG_DIR/$LOGFILE\_$DATETIME\_$USER.log

Schritt 5: Einrichtung des zeitgesteuerten Aufrufs

warning Hinweis
  • Hier sind administrative Berechtigungen erforderlich

more Vorgehensweise

  • Einrichtung
    • unter Windows: mit dem Task Manager (bzw. Aufgabenplanung)
    • unter Linux: als Cron Job
  • In beiden Fällen weiß der Job nichts von Umgebungsvariablen etc. Alles, was er wissen muss, muss in den Shell-Skripten mitgegeben werden (z.B. absolute Pfade verwenden).

warning Hinweise

  • Der Headless-Client startet üblicherweise ein Planta-Makro, ohne auf dessen Beendigung zu warten.
  • Dies kann durch den Parameter timeout=-1 verhindert werden.
  • In diesem Fall wartet der Headless-Client auf die Beendigung des Makros.
  • Siehe auch die Logging-Variante in den oben aufgeführten Shell-Skripten.
Topic revision: r23 - 2019-09-10 - 11:16:54 - IrinaZieger








 
  • Suche in Topic-Namen

  • Suche in Topic-Inhalten