Maison  >  Article  >  cadre php  >  Comment mettre à jour à chaud Swoole

Comment mettre à jour à chaud Swoole

(*-*)浩
(*-*)浩original
2019-12-07 13:59:313034parcourir

Avec la mise à jour itérative de la version swoole, elle est devenue suffisamment stable. Elle est utilisée par de grandes entreprises telles que Alibaba, Tencent, YY, etc., et est également utilisée par de nombreux amis du cercle des jeux vidéo. une question, Chaque fois que le code est mis à jour, le service doit être arrêté puis redémarré pour mettre à jour le code. Cependant, cette approche est relativement grossière.

Comment mettre à jour à chaud Swoole

En fait, swoole fournit la fonction de rechargement et prend entièrement en charge les mises à jour à chaud du code.

Avant d'introduire le rechargement de swoole, parlons brièvement de la façon dont la méthode Web prend effet immédiatement après la modification du fichier :

Quelques concepts : (Apprentissage recommandé : Tutoriel vidéo SWOLE )

1) SAPI : Il peut être simplement compris comme une interface unifiée du moteur PHP, afin que PHP puisse interagir avec des programmes externes pour interagir

2) Quatre appels clés dans le cycle de vie de php : MINT -> RINT -> RSHUTDOWN -> MSHUTDOWN

3) fpm : gestionnaire de processus fastcgi


Ensuite, le processus de la méthode fpm est le suivant : fpm interagit avec le processus php via l'interface sapi. Lorsque fpm est démarré,


La première étape : la méthode MINT de chaque extension sera appelée. pour traiter certaines données Initialisation (résidant en mémoire),

Deuxième étape : Pour chaque requête, RINT sera exécuté pour initialiser une seule requête,

Troisième étape : Exécuter le script php,

Étape 4 : Exécutez la méthode RSHUTDOWN,

Étape 5 : MSHUTDOWN ne sera exécuté que si vous souhaitez arrêter fpm.

fpm traite chaque requête en exécutant à plusieurs reprises les étapes 2 à 4.


Dans la troisième étape, le script php est exécuté dynamiquement, car le script php doit être exécuté à chaque fois, et chaque script php doit avoir une traduction du fichier php en Le processus de L'opcode (qui prend relativement du temps) a conduit à la création de l'outil opcache.


opcache : enregistrez directement l'arborescence de codes d'opcode traduite en PHP dans la mémoire partagée pour une utilisation directe, réduisant ainsi la surcharge liée à la traduction de PHP en opcode à chaque fois.


Problème opcache : D'après sa description, le fichier php a été modifié et n'a pas pu être mis à jour immédiatement


Solution opcache : Il existe une configuration pour définir l'intervalle de détection. si le fichier a été mis à jour depuis longtemps, afin que vous ayez la possibilité de recharger les fichiers associés dans la deuxième étape


Bien sûr, vous pouvez également recharger directement fpm pour obtenir l'effet de PHP. mise à jour à chaud (extension opcache Vous pouvez vider le cache opcode correspondant à la quatrième étape).

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Comment allumer SwooleArticle suivant:Comment allumer Swoole