Frage

Unterstützt PHP so etwas wie Ampersand in Bash (Forking)? Nehmen wir an, ich wollte Curl auf zwei Webseiten gleichzeitig verwenden, daher muss das Skript nicht vor dem ersten Curl -Befehl finnisch warten. Wie könnte man das in PHP erreichen? So etwas in Bash:

 curl www.google.com &
 curl www.yahoo.com &
 wait
War es hilfreich?

Lösung

Unterstützt PHP so etwas wie Ampersand in Bash (Forking)?
Nein. Sehen Sie sich die anderen Antworten an, obwohl ich darauf hinweist, dass die PCNTL -Erweiterung nur Unix ist.

... wie könnte man das in PHP erreichen?*
Curl unterstützt das Ausführen mehrerer Downloads gleichzeitig.

Andere Tipps

Sie können verwenden popen oder proc_open einen Prozess zu öffnen und ihn im Hintergrund ausführen zu lassen, aber es gibt keine Sprachunterstützung für Hintergrundvorgänge wie für bash (Wie auch immer, sowieso auf Aufgaben; PHP wurde für Scripting -Sachen gemacht).

Mit Proc_open können Sie dann verwenden proc_get_status zu wissen, wann die Prozesse beendet werden. Ich fürchte, es gibt keine wait Äquivalent.

Sie können asynchrone Methoden schreiben, wenn Sie wirklich möchten, aber es ist eine Menge Arbeit und wahrscheinlich eine schreckliche Designidee, wenn Sie PHP verwenden.

Eine Art Warteschlangenmechanismus ist oft vorzuziehen. Gearman ist ein Open -Source -Warteschlangenmechanismus, den Sie verwenden können. Ich habe auch einen Blog -Beitrag in der Zend Server -Jobwarteschlange, in der es um das Ausführen von Aufgaben asynchron geht Schlange Sie an? Einführung in die Zend Server -Jobwarteschlange.

Sie können auch so etwas wie die Zend Framework -Warteschlangenklassen verwenden, um einige der asynchronen Arbeiten zu implementieren. Zend_queue

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