Funktionen parallel ausführen ?

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

  • Funktionen parallel ausführen ?

    Hallo Forum,
    ich möchte in meinem script mehrere funktionen parallel ausführen lassen.

    Poblem:
    Es sollen mehrere server u.a. auch datenbanken abgefragt werden. Eine antwort kann aber bis zu 10 sek. pro server dauern. Das Script wartet aber bei jeder anfrage auf eine antwort. Werden dann z.B 10 server abgefragt muss man auf ein ergebnis sehr lange warten.

    Frage:
    Gibt es eine möglichkeit die abfragen parallel auszuführen?

    Danke im voraus!

    Mit besten Grüssen
    Zager

  • #2
    Hmm, meines Wissens kannst Du nur externe Prozesse starten, die aber dann in keiner Verbindung zum aufrufenden Skript mehr stehen.
    Du könntest folgendes probieren (nur ne Idee, nix davon ist getestet!)

    - Skript ruft 10 weitere skripte auf (mit exec, etwa "/usr/bin/php datenbank1.php" usw.)
    Diese Skripte geben nichts auf dem Bildschirm aus, sonst wartet exec(), bis sie beendet sind, und wir sind wieder beim gleichen Problem.
    Stattdessen schreiben die Skripte ihren Status in eine Datei: Datenbank 1 0%
    Datenbank 2 fertig
    Datenbank 3 55%
    Datenbank 4 gescheitert
    oder wie auch immer.

    Das aufrufende Skript checkt nun alle halbe Sekunde die Statusdatei - wenn alle auf 100% sind, gehts weiter im Text. Ich weiss allerdings nicht, ob der Zugriff von 10 Skripten auf eine Datei nicht locking-Probleme gibt.

    Kommentar


    • #3
      DB statt File?

      Hallo pekka,
      danke für Deinen tipp, werde es mal testen. Habe zugriff auf eine MySQL-Datenbank. Das locking-problem das Du angesprochen hast könnte ich doch mit einer datenbank statt einem file lösen können?

      Bye
      Zager

      Kommentar

      Lädt...
      X