Damit Timers ausgeführt werden, müssen folgende Server-Konfigurationen vorgenommen werden..
Timer Queue
GEOSHOP_DIR\user\options\appserver.opt
Die Timer Queue muss beim Starten des GeoShop eingeschaltet werden.
GeoShopServer MAP : TIMERQUEUE STRING ON : }
Timer Service
Damit Timers ausgeführt werden können, muss ein Server den Service für Timers anbieten.
GEOSHOP_DIR\user\services\servives.srv
MAP name STRING timer description STRING 'generic timer service' module STRING ICSServer server STRING appserver }
Im obigen Beispiel bietet der Server appserver
den Service timer
für die Ausführung von Timers
an.
Timers werden in Textfiles definiert und wie folgt abgelegt.
GEOSHOP_DIR\user\timers\<name>.tim
Timers verweisen auf ICS-Konfigurationen, die vom GeoShop aufgerufen werden und die beliebige Aktionen ausführen können. Timers sind optional.
Nachfolgend ein Beispiel für einen Timer .
Definition des Timers.
GEOSHOP_DIR\user\timers\hello.tim
MAP name STRING hello description STRING 'say hello' interval STRING 1:00 delay STRING 0 script STRING \script\timer\hello.cfg service STRING timer state STRING ON appserver_log STRING OFF SMTP_HOST STRING server }
Konfiguration des Timers.
GEOSHOP_DIR\user\script\timer\hello.cfg
!============================================================================ ! example timer ! ! sends GeoShop Administrator an email hello !============================================================================ !============================================================================ ! license !============================================================================ |LICENSE \license\geoshop.lic !============================================================================ ! procedures !============================================================================ PROCEDURE EMAIL_CREATE IF OPT.temp_dir . '\email.txt' TEXTFILE.CREATE NOT THEN ERROR 'unable to create email.txt' HALT END_IF => VAR.F VAR.F 'hello, world !' TEXTFILE.WRITELN VAR.F TEXTFILE.CLOSE END_PROCEDURE !---------------------------------------------------------------------------- PROCEDURE EMAIL_SEND OPT.jre_dir . '\bin\java.exe' . ' -jar ' . OPT.bin_dir . '\mailer.jar' . ' -body ' . OPT.temp_dir . '\email.txt' . ' -server ' . OPT.SMTP_HOST . ' -from ' . OPT.ADMIN_EMAIL . ' -to ' . OPT.ADMIN_EMAIL . ' -subject "' . 'Timer-Example' . '"' => VAR.COMMAND VAR.COMMAND OSCALL POP END_PROCEDURE !============================================================================ ! main !============================================================================ EMAIL_CREATE EMAIL_SEND !============================================================================ ! end of script !============================================================================
Das Script sendet jede Minute ein EMail an die GeoShop Administrator Email-Adresse.
Ein Log-File zum ausgeführten Timer wird wie folgt abgelegt.
GEOSHOP_DIR\data\temp\<name>_timer\timer.log
Timers werden in Textfiles definiert und wie folgt abgelegt.
GEOSHOP_DIR\user\timers\<name>.tim
Folgende Eigenschaften können für Timers konfiguriert werden.
Beschreibung Definition Product |
Parameter | req/opt | Typ | Beschreibung |
Tîmer | r | MAP | Map mit Definition Timer. |
Beschreibung Parameter MAP
PRODUCT |
Parameter | req/opt | Typ | Beschreibung |
name | r | STRING | Name des Timers. |
description | r | STRING | Beschreibung des Timers |
interval | r | STRING |
|
delay | r | STRING |
|
script | r | STRING | Konfiguration für den Timer. |
state | r | STRING | ON|OFF . Ist der Timer aktiviert. |
appserver_log | r | STRING | ON|OFF . Soll der Timer-Aufruf im
appserver.log eingetragen werden. |
<name> | o | <type> | Weitere beliebige Parameter der Typen
STRING|REAL|INT für die Konfiguration des
Timers. Die Parameter stehen in der Konfiguration als Option unter
OPT.<name> zur Verfügung. |