rolfrost: Wie baue ich eine queue ?

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

--
SELFforum - Das Tor zur Welt!
Theoretiker: Wie kommt das Kupfer in die Leitung?
Praktiker: Wie kommt der Strom in die Leitung?
  1. 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! :-)

    1. Du hattest kürzlich schon einmal eine ähnliche Frage bzw. selbst einen Ansatz: denk Dir ein zeitgesteuertes Sperrverfahren aus

    2. schreib Deine Daten in eine Datenbank, lasse diese Daten per Cronjob abarbeiten und löschen

    Gruß
    Reiner

    1. 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! :-)

      1. Du hattest kürzlich schon einmal eine ähnliche Frage bzw. selbst einen Ansatz: denk Dir ein zeitgesteuertes Sperrverfahren aus

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

      --
      SELFforum - Das Tor zur Welt!
      Theoretiker: Wie kommt das Kupfer in die Leitung?
      Praktiker: Wie kommt der Strom in die Leitung?
        1. 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!