Laufzeit bei Schleife

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Laufzeit bei Schleife

    hallo,
    ich hab da mal ein problemchen, wo ich nicht weiss an welcher stelle ich ansetzen muss...

    ich möchte mit einem php-script minütlich prüfen ob ein netzwerkgerät online ist.
    >> cronjob jede minute: script prüfe ob IP erreichbar
    soweit so gut.
    nun habe ich aber ca 200 geräte.
    also in das script, was von dem cronjob aufgerufen wird, ne schleife einbauen. auch ok.
    da einige geräte erst nach ca 2 sekunden antworten, muss ich das timeout für die anfrage an das gerät auf ca 3 sekunden setzen.
    wenn nun aber z.B. 40 geräte nicht antworten würden, kann ich die minütliche anfrage nicht mehr einhalten? oder?
    muss ich nun für jedes gerät nen eigenen cronjob anlegen?
    hätte ihr da ne idee?
    schonmal besten dank!!!

  • #2
    Für mich eher Brainstorming darum **move**
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Merk dir irgendwie, ob noch ein Cronjob rennt und terminiere. Dieses irgendwie kann zum Beispiel eine Datei sein, in der ein Timestamp des letzten Skriptstartes steht. Endet ein Skript, wird die Datei gelöscht. Startet ein Cronjob und die Datei existiert, beendest du die Ausführung, falls der Zeitstempel nicht eine gewisse Zeitspanne her ist (zum Beispiel 5 Minuten). So hast du keine Probleme, wenn ein Skript mal beendet wird, ohne die Datei zu löschen!

      Kommentar


      • #4
        tach,
        ich glaube wir reden aneinander vorbei oder ich versteh die antwort nicht...

        das script soll ja nicht beendet werden!

        vorgaben: jedes gerät soll einen wert pro minute liefern.

        beispiel: ich starte das script um 12:00 Uhr
        nach 1 minute habe ich z.b. 60 von 200 geräten abgefragt, dann müsste das script parallel nochmal gestartet werden, damit ich die daten vom ersten gerät für die zweite minute habe!
        und nach einer weiteren minute nochmal für den dritte wert.
        somit würde das script, abhängig von dem antwortverhalten der geräte, mehrfach parallel laufen.
        anhand des beispiels dann 4 bis 5 mal.

        Kommentar


        • #5
          somit würde das script, abhängig von dem antwortverhalten der geräte, mehrfach parallel laufen.
          anhand des beispiels dann 4 bis 5 mal.
          Ja, ist ja auch klar! Also entweder habe ich dein Problem falsch verstanden oder du meinen Lösungsansatz nicht ganz.
          Hier nochmal mein vorgehen:
          Code:
          Skript startet.
             sucht Merkerdatei
               [b][vorhanden]:[/b]
                    Es könnte noch ein Skript laufen
                    Ließt ZeitstempelAlt aus der Merkerdatei.
                    ZeitstempelJetzt - ZeitstempelAlt < X   ?
                    [b][ja]:[/b]
                         exit
             [i]ZeitstempelJetzt in Merkerdatei schreiben[/i]
             [i]Skript ausführen[/i]

          Kommentar


          • #6
            Und wer von den Netzwerkadmin erlaubt sowas? Du belastest das Netzwerk mit belanglosen ping -oder schlimmer, mit socket-Abfragen. Dein IT-Leiter, der dir das erlaubt hat, gehört an den Galgen! ... Tsss ... ist ja nicht zu fassen.

            Kommentar


            • #7
              moin,
              back aus the wochenend...

              @PHP-Desaster. Danke nochmal!
              dann hab ich die antwort doch verstanden.
              aber das würde nicht zum gewünschten ergebnis führen!
              nach meiner vorgenhensweise, wo ich nicht sicher bin ob sie die richtige ist, muss das script mehrfach parallel laufen, damit die geräte im vordefinierten zeitabstand abgefragt werden. und das würde nur gehen, wenn ich für jedes gerät einen eigenen cronjob anlege oder der job mehrfach parallel läuft.

              @asp2php
              die zeitabstände und anzahl von geräten waren nur ein beispiel um die problemstellung zu verdeutlichen!
              offtopic: wie stellst du dir eine serverüberwachung vor?
              warum soll ein ping eine belastung sein?

              Kommentar

              Lädt...
              X