Position actuelle: Accueil> Derniers articles> Swoole et Workerman : un guide pratique du traitement asynchrone des messages avec PHP et MySQL

Swoole et Workerman : un guide pratique du traitement asynchrone des messages avec PHP et MySQL

M66 2025-10-30

Capacités de traitement de messages asynchrones de Swoole et Workerman en PHP

Swoole et Workerman sont deux frameworks de réseau asynchrone populaires dans le domaine PHP, qui peuvent améliorer considérablement les performances lors de l'interaction avec les bases de données MySQL. Cet article partira du point de vue du traitement asynchrone des messages, présentera l'utilisation des deux en détail et fournira des exemples de code pratiques.

Capacités de traitement de messages asynchrones de Swoole

Swoole est un moteur de communication réseau asynchrone pour les environnements de production, utilisant la technologie coroutine pour réaliser des opérations d'E/S asynchrones hautes performances. Sa prise en charge intégrée du protocole MySQL permet aux développeurs d'utiliser directement des méthodes asynchrones pour effectuer des opérations de base de données, améliorant ainsi considérablement l'efficacité des requêtes.

Exemple de code : requête MySQL asynchrone Swoole

<?php
$server = new SwooleCoroutineMySQL();
$server-> connecter([
    &#39;hôte&#39; => &#39;127.0.0.1&#39;,
    &#39;port&#39; => 3306,
    &#39;utilisateur&#39; => &#39;nom d&#39;utilisateur&#39;,
    &#39;mot de passe&#39; => &#39;mot de passe&#39;,
    &#39;base de données&#39; => &#39;nom de base de données&#39;,
]);

SwooleRuntime::enableCoroutine();

aller (fonction () utiliser ($ serveur) {
    $result = $server->query(&#39;SELECT * FROM table1&#39;);
    var_dump ($ résultat);
});

aller (fonction () utiliser ($ serveur) {
    $result = $server->query(&#39;SELECT * FROM table2&#39;);
    var_dump ($ résultat);
});

SwooleEvent::attendre();
?>

Dans le code ci-dessus, nous créons d'abord l'objet MySQL de Swoole et nous connectons à la base de données, puis démarrons la coroutine via la fonction go(), effectuons respectivement deux opérations de requête asynchrone et enfin utilisons SwooleEvent::wait() pour attendre que toutes les coroutines se terminent.

Capacités de traitement des messages asynchrones de Workerman

Workerman est également un framework de communication asynchrone PHP hautes performances qui utilise un modèle basé sur les événements pour rendre la programmation réseau plus flexible. Il peut facilement implémenter des opérations d’E/S asynchrones et convient aux scénarios à forte concurrence.

Exemple de code : requête MySQL asynchrone Workerman

<?php
require_once __DIR__ . '/vendor/autoload.php';
use WorkermanMySQLConnection;

$mysql = new Connection('127.0.0.1', '3306', 'username', 'password', 'dbname');
$worker = new Worker();

$worker-> onWorkerStart = function() utiliser ($mysql) {
    $result = $mysql->query(&#39;SELECT * FROM table1&#39;);
    var_dump ($ résultat);

    $result = $mysql->query(&#39;SELECT * FROM table2&#39;);
    var_dump ($ résultat);
} ;

Travailleur :: runAll ();
?>

Dans ce code, nous chargeons le framework Workerman via le chargement automatique, créons un objet de connexion MySQL, effectuons une opération de requête asynchrone dans le rappel onWorkerStart de l'objet Worker et enfin démarrons la boucle d'événements via Worker::runAll().

Résumer

Swoole et Workerman peuvent prendre en charge efficacement le traitement des messages asynchrones de PHP et MySQL. Les développeurs peuvent choisir le cadre approprié en fonction des besoins du projet pour obtenir une interaction de base de données asynchrone rapide et efficace. L'exemple de code fourni dans cet article peut être utilisé comme référence pour les débutants afin de mieux comprendre comment la technologie de traitement de messages asynchrone est implémentée dans des applications pratiques.