Deutsche Zope User Group
Gast 1 Benutzer online
DZUG-News

HowTo: ZOPE-Vorg�nge unter Windows regelm��ig ausf�hren

Das HowTo erkl�rt, die man unter Windows sehr einfach Jobs regelm��ig �ber "Geplante Tasks" ansto�en kann.



Zeitsteuerung mit ZOPE funktioniert so, dass man eine Seite innerhalb des ZOPE automatisiert aufruft. Das kann irgendeine Seite sein, z. B. eine DTML-Methode oder auch direkt ein Python-Script; Sinn macht das ganze aber nat�rlich nur, wenn die Seite eine Aktion innerhalb deines Zope bewirkt.

Dazu benutzen wir ein Kommandozeilen-Tool namens WGET. W�hrend WGET unter Linux zur Bordausstattung geh�rt, muss man es sich f�r Windows hier besorgen:

ftp://sunsite.dk/projects/wget/windows/

Die Versionen mit dem "b" im Dateinamen sind die ausf�hrbaren Dateien, die mit dem "s" die Sourcen (falls wer selbst kompilieren m�chte - ok, den lass' ich das n�chste mal weg).

Am besten den Inhalt des Archivs komplett nach \Windows\System32 entpacken, dann steht der Befehl �berall zur Verf�gung.

Jetzt eine Batch-Datei schreiben, die k�nnte etwa so aussehen:

   @echo off
   REM
   REM Aufruf einer Zope-Seite
   REM
   wget --spider --http-user=admin --http-passwd=XXXX -t 1 http://adresse:port

Wer einen Proxy verwendet, muss folgendes schreiben:

   wget --spider --http-user=admin --http-passwd=XXXX -t 1 -Y on http://adresse:port

Die speichert man an einem definierten Ort, z. B. hier:

   C:\scripts\batch.cmd

Die Batchdatei bitte durch Doppelklick testen, ob das gew�nschte Resultat in ZOPE eintritt. Jetzt unter Systemsteuerung / Geplante Tasks einen neuen Task anlegen, der die Datei batch.cmd automatisch startet. Nat�rlich ist man nicht auf "t�glich" als minimalen Zeitabstand beschr�nkt; in den erweiterten Optionen geht so ziemlich alles von min�tlich zwischen 8:13 Uhr und 15 Uhr, bis zweist�ndlich zwischen 1:15 Uhr und 7:15 Uhr.

Wichtig: Beim Anlegen des Tasks erwartet Windows 2000 bzw. XP einen passwortgesch�tzten Benutzernamen, unter dessen Rechten der Task ausgef�hrt wird. Ohne Passwort geht es nicht. Es versteht sich wohl von selbst, dass dies ein Standard-Benutzer sein sollte, und kein Administrator.

Wichtig 2: Hier gibt es auch eine Option "Task beenden nach X:X Minuten", dort unbedingt ein Zeitmaximum vorgeben (z. B. 2 Minuten). Falls WGET einmal crashen sollte, wird der Task dann nach der vorgegebenen Zeitspanne automatisch abgeschossen, und verbraucht keine Ressourcen.

Beispiele f�r zeitgesteuerte Aktionen in ZOPE finden sich zahlreich auf zope.org; auch auf DZUG gibt es einige Artikel, z. B. hier:

ZCatalog Update mit dem wget-Kommando

ZODB automatisch packen

Geschrieben von Timo . Letzte �nderung 18.12.2003 09:14.