Heim >PHP-Framework >Swoole >So verwenden Sie das Swoole-Event

So verwenden Sie das Swoole-Event

(*-*)浩
(*-*)浩Original
2019-12-06 10:31:402230Durchsuche

So verwenden Sie das Swoole-Event

SwooleServer ist ein ereignisgesteuertes Modell und der gesamte Geschäftslogikcode muss in der Ereignisrückruffunktion geschrieben werden. Wenn ein bestimmtes Netzwerkereignis auftritt, ruft die unterste Ebene aktiv die angegebene PHP-Funktion zurück. Insgesamt werden 13 Veranstaltungsarten unterstützt. (Empfohlenes Lernen: Swoole-Video-Tutorial )

Ereignisausführungssequenz

Alle Ereignisrückrufe erfolgen nach $server->start

Das letzte Ereignis, wenn das Programm zum Herunterfahren des Servers beendet wird, ist onShutdown

Nachdem der Server erfolgreich gestartet wurde, werden onStart/onManagerStart/onWorkerStart gleichzeitig in verschiedenen Prozessen ausgeführt

onReceive/onConnect/onClose Ausgelöst im Worker-Prozess

OnWorkerStart/onWorkerStop wird einmal aufgerufen, wenn der Worker-/Task-Prozess startet/endet

Das onTask-Ereignis tritt nur im Task-Prozess auf

Das onFinish-Ereignis Tritt nur im Worker auf. Die Ausführungsreihenfolge der 3 Ereignisse

onStart/onManagerStart/onWorkerStart im Prozess ist ungewiss

Coroutine-Modus

Swoole2/4-Version unterstützt Coroutinen. Nach der Verwendung von Coroutinen werden Ereignisrückruffunktionen gleichzeitig ausgeführt. Coroutine ist eine Thread-Implementierung im Benutzermodus, die keinen zusätzlichen Planungsverbrauch hat und nur Speicher belegt.

Die Verwendung des Coroutine-Modus kann so verstanden werden: „Jede Ereignisrückruffunktion erstellt einen neuen Thread zur Ausführung. Nachdem die Ereignisrückruffunktion ausgeführt wurde, wird der Thread beendet.“

Wenn Sie die Coroutine schließen möchten, können Sie Folgendes festlegen:

$server->set(["enable_coroutine" => false, ]);

Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Swoole-Event. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn