2012-04-13 6 views
2

Kennen Sie eine Bibliothek, die die Arbeit mit Prozessen, Signalübertragung usw. erleichtert? Vielen Dank im Voraus!PHP-Bibliothek zur Vereinfachung der Erstellung von Prozessen (Fork)

EDIT: Wir machen einige Daten laden von externen Quellen in PHP-Daemon. Wir wollen PHP-Prozess aufgeteilt haben:

zum Laden
  • einen Prozess pro jeder Datenquelle,
  • ein Verfahren zur Verarbeitung von Daten, die von jeder Datenquelle kamen.
+1

Was ist dein Ziel? Sie sollten es noch etwas erklären. – Stony

+0

Ich habe einen Kommentar zur Verwendung hinzugefügt, thx! – Tuner

+0

Vielleicht ist die Lösung, viele Deamon-Prozesse mit einem "Besitzer" zu erstellen, der die Warteschlange von Jobs liest, die erledigt werden müssen. Abhängig davon, wie viele Prozesse vom Benutzer erstellt werden, werden viele Jobs parallel verarbeitet. Vielleicht ist die Verwendung von http://www.zeromq.org/ die richtige Lösung für die Implementierung. – Tuner

Antwort

3

Sie möchten vielleicht Spork auschecken, es wurde entwickelt, um Forking und Hintergrundverarbeitung in PHP zu erleichtern.

Es ist ziemlich neu (angekündigt vor nur 3 Tagen), aber einen Versuch wert.

+0

Es ist ein Wrapper von pcntl. – rdo

2

Sie können process control Bibliothek verwenden, aber es funktioniert nur auf Linux.

Für fork Zwecke enthält es pcntl_fork Funktion. Example:

$pid = pcntl_fork(); 
if ($pid == -1) { 
    die('could not fork'); 
} else if ($pid) { 
    // we are the parent 
    pcntl_wait($status); //Protect against Zombie children 
} else { 
    // we are the child 
} 

UPD: wenn ich Ihre Ziele korrigieren verstehen Sie Ihre Anwendung entwerfen, ohne Prozesse von Forking. Sie können zwei Daemons verwenden, wobei der erste Daemon die Datenquelle verarbeitet und sie zur Warteschlange hinzufügt. Der zweite Daemon verfolgt die Warteschlange und verarbeitet sie.

Ps.s. Wie ich weiß, kann PHP auf Windows-Plattformen keine Fork-Prozesse ausführen. Auch für zusätzliche können Sie POSIX function in PHP verwenden.

+0

Was ist mit Windows Möglichkeiten, um Ziele zu erreichen, die ich beschrieben habe? Um "Multi-Threading" "Multi-Processing" zu erreichen? – Tuner

+1

Es gibt keine Threading in PHP –

+0

Ja, ich bin mir dessen bewusst. Ich suche nach einer bestehenden und bewährten Lösung, um Jobs parallel zu machen. – Tuner

Verwandte Themen