Avanti-W: Perl-Skript ausfuehren
Dierk Hoeppner
ho at buch.biblio.etc.tu-bs.de
Do Jul 13 10:55:13 CEST 2000
Herr Lackhoff schrieb:
> 2) "Winframe des kleinen Mannes" Auf dem Server laeuft ein
> kleines Script, das sich von Windows mitteilen laesst, wenn sich in
> einem bestimmten Verzeichnis etwas geaendert hat (dafuer gibt es
> eine API-Funktion, die von allen gaengigen Windows-Ports
> unterstuetzt wird und den Server nicht besonders belastet). Und wenn
> da etwas auftaucht, ein Perl-Script oder ein Avanti-Job oder eine
> Importdatei, dann kann das Serverscript darauf reagieren. Letztlich
> ist es dasselbe wie das Ur-Avanti mit Job-Dateien, nur allgemeiner
> mit allen Moeglichkeiten, die Perl bietet. Diese Variante habe ich
> damals zwar ausgetestet und sie funktionierte wunderbar, ich habe
> sie aber aus irgendwelchen Gruenden nie wirklich eingesetzt.
> Wahrscheinlich hatte ich keinen echten Bedarf, da sich alles auch
> direkt auf dem Client machen liess aber das koennte bei Ihnen ja
> anders aussehen. Ubrigens habe ich damals die entscheidende Anregung
> auch von Herrn Berger bekommen, wenn ich mich recht erinnere ;-)
Das ist eine feine Sache, die ich bei uns hausintern für unser
Verwaltungssystem für SUBITO-Bestellungen einsetze. Die
Bestellungen kommen ja per Mail herein. Auf einem NT-Server
werden die Mails als einzelne Dateien in einem Verzeichnis abgelegt
(macht Win-Mercury). Das Script schläft normalerweise, d.h. es
belastet den Rechner nicht, und wird von Windows aufgeweckt,
wenn sich
im Mail-Verzeichnis etwas tut. Dann untersucht es die Mails. Echte
Bestellungen werden dann umgewandelt und in eine - wie soll es
anders
sein? - allegro-Datenbank überführt. Das geschieht natürlich per
avanti, der auf einer anderen Maschine läuft.
Der Kern dieses Dämons ist ganz einfach. Im Attachment findet
man die Lösung mit Python, mit Perl geht es sicherlich ebenso
einfach. Eine kleine Anmerkung dazu: Es gibt eine Zeile, in der das
Programm mit dem Sleep-Befehl für 5s schlafen geschickt wird. Das
ist
nicht notwendig, für meine Anwendung habe ich es gemacht, um
noch
einen kleinen Moment auf weitere eingehende Mails zu warten. Die
Anwendung ist ja nicht zeitkritisch.
Die Funktion wird einfach mit dem Pfad des zu überwachenden
Verzeichnisses aufgerufen. Sie wartet dann darauf, dass sich
irgendwas im Verzeichnis tut: Dateiumbenennung, Neuanlage,
Löschung. Wenn so etwas vorkommt, kehrt sie zurück. Man muss
dann anschließend selber untersuchen, was es war und
entsprechend reagieren bzw. nicht reagieren.
Besagtes Script läuft bei uns wochenlang klaglos. Wenn es mal
steckenbleibt lag es bisher immer an der WinFax-Software, die auf
demselben Rechner läuft und ab und zu mal aussteigt :-(
Viele Grüße
Dierk Höppner
Dierk Hoeppner
Universitaetsbibliothek
Pockelsstr. 13
D-38106 Braunschweig
Germany
Tel: +49-531-391-5066 Fax: -5836
E-Mail: d.hoeppner at tu-bs.de
Mehr Informationen über die Mailingliste Allegro