24. Konfiguration GeoShop Timers

24.1. Einleitung

Timers sind Prozesse, die im GeoShop in einem Intervall aktiviert werden können.

24.2. Timer Queue/Service

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.

24.3. Timer Definition

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

24.4. Eigenschaften

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
Parameterreq/optTypBeschreibung
TîmerrMAPMap mit Definition Timer.
Beschreibung Parameter MAP PRODUCT
Parameterreq/optTypBeschreibung
namerSTRINGName des Timers.
descriptionrSTRINGBeschreibung des Timers
intervalrSTRING

[[hh:]mm:]ss . Intervall des Timers in dem die Timer-Konfiguration aufgerufen wird.

delayrSTRING

[[hh:]mm:]ss . Verzögerung des Timers nachdem der Intervall erreicht ist..

scriptrSTRING

Konfiguration für den Timer.

staterSTRINGON|OFF. Ist der Timer aktiviert.
appserver_logrSTRINGON|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.