PHP asynchron

WBOY
WBOYOriginal
2024-08-29 12:51:451152Durchsuche

Async steht hier für Asynchron, was bedeutet, dass der Prozess nicht synchron ist. Asynchron ermöglicht die parallele Ausführung des Codes. Das bedeutet, dass wir den Code separat und unabhängig voneinander ausführen können. Dies wird im Allgemeinen als asynchroner Prozess bezeichnet und gilt auch für PHP. Wir haben das Async-Modell in PHP, das uns die gleichzeitige Ausführung mehrerer Aufgaben ermöglicht. Es beschleunigt die Ausführung des Codes und erhöht auch die Leistung.

WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Syntax:

In PHP können wir das Spatie-Paket verwenden, um die Async-Funktion zu nutzen. Mit diesem Paket können wir einen Pool erstellen, der unseren asynchronen Aufruf verarbeitet und uns dabei hilft, die parallele Ausführung des Programms bereitzustellen. Zum besseren Verständnis können wir einen Blick auf die Syntax werfen. Siehe unten;

//package to be used
use Spatie\Async\Pool;
$mypool = Pool::create();
$mypool[] = async() {
//your logic goes here
})->then() {
// your logic
});

Zuerst müssen wir das Paket importieren, das hier „SpatieAsyncPool“ heißt. Danach erstellen wir einen Pool, der die asynchronen Vorgänge für uns übernimmt. Gefolgt vom Schlüsselwort „async“ darin schreiben wir unsere gesamte Logik und den Code, den wir parallel ausführen möchten. Hier haben wir eine „Dann“-Methode, die eine Rückrufmethode ist. Darin können wir auch unsere eigene Logik schreiben. Nach allen Operationen können wir weitere Operationen auf die gegebene Ausgabe im „then“-Block schreiben.

Wie funktioniert die asynchrone Funktion in PHP?

Jetzt wissen wir, dass die Async-Funktion uns die Ausführung mehrerer Aufgaben ermöglicht. Wenn wir über synchrone Programmierung in PHP sprechen, erhalten wir immer eine Ausgabe in derselben Reihenfolge. Angenommen, wir möchten die Zahl von 1 bis 10 drucken. Wenn ich diese Logik also mit dem Synchronous-Code schreibe, erhalte ich sie immer in aufsteigender Reihenfolge. Wenn wir hier jedoch versuchen, den asynchronen Code für dieselbe Logik zu verwenden, sind wir uns über die Reihenfolge der Zahlen nicht sicher. Wir werden dies im Folgenden anhand einiger Beispiele näher erläutern. Um den asynchronen Code in PHP zu schreiben, haben wir ein Paket namens „spatie“ verwendet. Dies ermöglicht uns auch eine bessere Behandlung von Fehlern und Ausnahmen im asynchronen Code. Zuerst werden wir sehen, wie man mit diesem Paket eine einfache Logik schreibt. Anschließend werden wir die weiteren Methoden, die mit asynchronem Code verwendet werden können, später im Detail besprechen.

  • Um den asynchronen Block zu erstellen, müssen wir zunächst das Paket „spatie“ importieren oder verwenden. Wir können dies wie folgt in unseren Code importieren; Wir werden dieses Paket mithilfe des Composers installieren. Den Composer-Befehl finden Sie auch unterhalb der Syntax.

Beispiel:

use Spatie\Async

cmd:

composer require spatie
  • Der zweite Schritt besteht darin, dass wir ein Poolobjekt erstellen. Mithilfe dieses Objekts können wir die asynchrone Funktion schreiben. Zum besseren Verständnis sehen Sie sich die Syntax unten an;

Beispiel:

$mypool = Pool::create();

Wir können dem Poolobjekt einen beliebigen Namen geben. Vergessen Sie außerdem nicht, die in „Async“ vorhandene Pool-Klasse zu importieren. Siehe unten;

Beispiel:

use Spatie\Async\Pool;
  • In diesem Schritt können wir nun unsere asynchrone Funktion mithilfe des Poolobjekts erstellen. Wir können der Funktion einen beliebigen Namen geben und unsere Logik schreiben. Zum besseren Verständnis sehen Sie sich unten die Syntax an;

Beispiel:

demoAsync(function () {
// //
})
->then(function ($output) {
// //
})

Im obigen Codeteil erstellen wir eine asynchrone Funktion und verwenden deren Rückrufmethode „then“. Diese „then“-Funktion ist für den Betrieb verantwortlich, wenn der obige Codeblock erfolgreich ausgeführt wird. Wenn nicht, müssen wir diesen Fall mithilfe anderer Async-Methoden lösen.

Jetzt sehen wir einige Methoden zur Behandlung von Fehlern, Ausnahmen und Zeitüberschreitungen, die bei der Ausführung des Codes auftreten können. Dieses Paket stellt uns verschiedene Methoden zur Verfügung, um dies innerhalb des asynchronen Blocks des Codes zu handhaben. Lassen Sie uns jeden einzelnen davon im Detail besprechen. Siehe unten;

1. Zeitüberschreitung

Die Methode wird ausgeführt, wenn der Codeblock seine Vorgänge nicht innerhalb des erwarteten Zeitrahmens ausführt oder auf einen Fehler stößt. Im Folgenden finden Sie die Syntax zum Schreiben dieser Methode:

Beispiel:

timeout(function () {
// when timeout reached.
})

2. dann

Die Methode wird ausgeführt, wenn der Codeblock erfolgreich ausgeführt wurde und zusätzliche Operationen für das Ergebnis erforderlich sind. Im Folgenden finden Sie die Syntax zum Schreiben dieser Methode:

Beispiel:

then(function ($result) {
// operation after result
})

3. fangen

Diese Methode wird ausgeführt, wenn der Codeblock eine Ausnahme auslöst. Innerhalb dieser Methode können wir sie verarbeiten und unsere Logik ausführen. Die Syntax zum Schreiben dieser Methode ist unten dargestellt;

Beispiel:

catch(function ($exp) {
// exception can be handle here.
})

Examples of PHP async

Following are the examples given below:

Example #1

In this example, we are implementing async with the method and printing two messages to keep it simple for beginners.

Code:

use Spatie\Async\Pool;
$mypool = Pool::create();
$mypool
->asyncDemo(function () {
print("async called here !!")
})
->then(function () {
print("then called after result !!")
} ;

Output:

PHP asynchron

Example #2

In this example, we are using all the methods of async from the Spatie\Async\ package. Those are catch, then, and timeout. We keep it simple for now without too much logic.

Code:

use Spatie\Async\Pool;
$mypool = Pool::create();
$mypool
->asyncDemo(function () {
print("async called here !!")
print("async called here !!")
})
->then(function ($output) {
print("print called here !!")
})
->catch(function ($exception) {
print("catch called here !!")
})
->timeout(function () {
print("timeout called here !!")
})
;

Output:

PHP asynchron

Conclusion

By using async in our code, we can enable parallel execution of tasks in our program. Also, they increase the performance of the code because the piece of code is independent of each other. But using StopIteration in situations where the data from the previous block of code is dependent on the current can lead to data loss and inconsistency.

Das obige ist der detaillierte Inhalt vonPHP asynchron. 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
Vorheriger Artikel:PHP strlen()Nächster Artikel:PHP strlen()