Wie baue ich eine queue ?
rolfrost
- perl
Hallo,
Bisher: Ein PERL Script (nennen wir es *master.pl*) ruft für über 100 hosts mit verschiedenen Parametern eine Funktion portscan($host, $port) auf die ihrerseits das jeweilige Ergebnis an einen bestimmten Host sendet.
Das Problem: Falls ein oder mehrere hosts nicht antworten greift der timeout - der Report verzögert sich und master.pl ist erst fertig wenn alle hosts abgearbeitet sind.
Gerne hätte ich es jedoch so: master.pl schickt [host, port] an eine queue - also an eine Warteschlange und beendet sich, ohne das Ergebnis abzuwarten.
Wie baue ich eine solche Q? Hat jemand eine Idee?
Viele Grüße, Rolf
Hi Rolf,
Bisher: Ein PERL Script (nennen wir es *master.pl*) ruft für über 100 hosts mit verschiedenen Parametern eine Funktion portscan($host, $port) auf die ihrerseits das jeweilige Ergebnis an einen bestimmten Host sendet.
Das Problem: Falls ein oder mehrere hosts nicht antworten greift der timeout - der Report verzögert sich und master.pl ist erst fertig wenn alle hosts abgearbeitet sind.
Gerne hätte ich es jedoch so: master.pl schickt [host, port] an eine queue - also an eine Warteschlange und beendet sich, ohne das Ergebnis abzuwarten.
Wie baue ich eine solche Q? Hat jemand eine Idee?
zwei! :-)
Du hattest kürzlich schon einmal eine ähnliche Frage bzw. selbst einen Ansatz: denk Dir ein zeitgesteuertes Sperrverfahren aus
schreib Deine Daten in eine Datenbank, lasse diese Daten per Cronjob abarbeiten und löschen
Gruß
Reiner
hallo Reiner,
manchmal hab ich Tomaten im Ohr und Bohnen auf den Augen ;-)
Bisher: Ein PERL Script (nennen wir es *master.pl*) ruft für über 100 hosts mit verschiedenen Parametern eine Funktion portscan($host, $port) auf die ihrerseits das jeweilige Ergebnis an einen bestimmten Host sendet.
Das Problem: Falls ein oder mehrere hosts nicht antworten greift der timeout - der Report verzögert sich und master.pl ist erst fertig wenn alle hosts abgearbeitet sind.
Gerne hätte ich es jedoch so: master.pl schickt [host, port] an eine queue - also an eine Warteschlange und beendet sich, ohne das Ergebnis abzuwarten.
Wie baue ich eine solche Q? Hat jemand eine Idee?
zwei! :-)
Du hattest kürzlich schon einmal eine ähnliche Frage bzw. selbst einen Ansatz: denk Dir ein zeitgesteuertes Sperrverfahren aus
schreib Deine Daten in eine Datenbank, lasse diese Daten per Cronjob abarbeiten und löschen
Schwupp da holt mich die Vergangenheit ein - so könnte es gehen. Aber gabs da nicht noch irgendwas mit PIPES und FIFO ??
Viele Grüße, Rolf
- schreib Deine Daten in eine Datenbank, lasse diese Daten per Cronjob abarbeiten und löschen
Schwupp da holt mich die Vergangenheit ein - so könnte es gehen. Aber gabs da nicht noch irgendwas mit PIPES und FIFO ??
Ich weiß jetzt nicht, was Du mit Pipes hier meinst. Einen Fifo kannst Du so natürlich simulieren indem Du einen Timestamp (mit now()) mitspeicherst. Beim Auslesen mußt Du entsprechend per "order by time asc" den Krempel sortieren.
Gruß
Reiner
P.S.: Ich mache das auf meiner Kiste bei diesem Webalarm ähnlich. Funktioniert prima!