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. |