Server->stop
arrête le processus Worker en cours et déclenche immédiatement la fonction de rappel onWorkerStop.
function Server->stop(int $worker_id = -1, bool $waitEvent = false);
Utilisez cette fonction au lieu de exit/die pour terminer le cycle de vie du processus Worker
$waitEvent peut contrôler la stratégie de sortie. La valeur par défaut est false pour quitter immédiatement et définie sur true. pour attendre que la boucle d'événements soit vide. Puis quittez
Si vous souhaitez mettre fin à d'autres processus Worker, vous pouvez ajouter worker_id comme paramètre dans stop ou utiliser swoole_process::kill($worker_pid)
Cette méthode est disponible en 1.8.2 ou Disponible dans les versions ultérieures
$waitEvent est disponible en 1.9.19 ou dans les versions ultérieures
Sortie asynchrone
Le serveur asynchrone se ferme après avoir appelé stop. Pendant que le processus est en cours d'exécution, il peut encore y avoir des événements en attente. Par exemple, SwooleMySQL->query est utilisé pour envoyer l'instruction SQL, mais il attend toujours que le serveur MySQL renvoie le résultat. Si le processus est forcé de se terminer à ce moment-là, les résultats de l'exécution SQL seront perdus.
Après avoir défini $waitEvent = true, la couche sous-jacente utilisera une stratégie de redémarrage sécurisé asynchrone. Informez d’abord le processus Manager et redémarrez un nouveau Worker pour gérer les nouvelles demandes. L'ancien Worker actuel attendra les événements jusqu'à ce que la boucle d'événements soit vide ou dépasse max_wait_time, puis quittera le processus pour garantir au maximum la sécurité des événements asynchrones.
Apprentissage recommandé : tutoriel swoole
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!