Frage

Ich gehe davon aus, dass für jede Anfrage, der Webserver (zB. Apache) eine neue Instanz eines Skripts im Speicher erstellt. Können diese Instanzen miteinander kommunizieren beim Laufen? und auch Daten übergeben?

War es hilfreich?

Lösung

Wenn Sie die Datenübertragung zwischen Skripte in PHP Ich möchte empfehlen, entweder Memcached oder eine Datenbank. Oder vielleicht APC.

Wenn die Skripts auf die gleiche Sitzung gehören, könnten sie theoretisch über die Sitzung kommunizieren, aber dies wäre effektiv eine Einweg-Kommunikation in den meisten Fällen, weil nur ein Skript, um die Sitzung zu einem beliebigen Zeitpunkt (session_start zugreifen kann () sperrt die Sitzung, bis das Skript beendet die Sitzung implizit oder explizit).

Andere Tipps

Ich glaube, Martin und Cletus' Vorschläge sind gültig. Meine Auswahl Funktion des Endziels des Skripts sein würde.

  • Wie viele Daten werden Sie werfen um? Können Sie den Overhead von einem externen Prozess umgehen?
  • Welche Art von Daten ausgetauscht werden Sie? Ist es normalisiert? Oder ist es jetzt wert Normalisierungs?
  • müssen Sie später auf diese Daten verweisen? Oder kann es nach der Verarbeitung verworfen werden?
  • Werden diese Skripte jemals auf verschiedenen Servern?

  • Flat-Dateien, mit einem Verriegelungsmechanismus

  • Relationale DB
  • Dokument DB (Schlüssel / Wert-Speicher, ob persistent oder nicht)
  • Shared Memory (APC oder Kernfunktionen)
  • Nachrichtenwarteschlangen (Active MQ und Unternehmen)

Ich denke, Sie werden den größten Wert erhalten, indem der Prozess Externalisierung, wie Sie mehr als eine Maschine, die Nachrichten / Verwaltung von Daten haben können und mehr als eine Erzeuger- / raubend sie.

Das Modell, das PHP-Skripte funktionieren off ist nicht wirklich die Vorstellung von jeder Art von Beharrlichkeit im Speicher für diese Skripte enthalten, da sie in der Regel entworfen wurde nur für das Minimum von Zeit zu laufen benötigt, um die gewünschte Seite zu dienen. Dies würde es schwer für Stateful-Kommunikation zwischen diesen Skripten eine sinnvolle Nutzung haben, da in der Regel, sobald die Seite serviert, es gibt nichts mehr für das Skript zu tun. So in der Regel jede Kommunikation zwischen PHP-Scripts wird mehr durch die Manipulation von Datenbankeinträgen erfolgt und dergleichen.

Wenn Sie irgendeine Art von kontinuierlicher Verarbeitung, die für die sollte passieren Sie würden Daten werden um vorbei, Sie könnten in andere Web-Anwendung Modelle wie Servlets suchen.

Sie sollten Lage sein, dies mit einigem gemeinsam genutzten Speicher zu tun, wie hier beschrieben: http://blog.taragana.com/index.php/archive/how-to-use-shared-memory-in-php/ (vorausgesetzt, Sie‘ sind nicht auf Windows ausgeführt wird)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top