http://uwsgi-docs.readthedocs.io/en/latest/Gevent.html?highlight=gevent Tout en regardant, déplaçons uwsgi en mode gevent.
nginx: 1.10.1 python: 2.7.10 uwsgi: 2.0.13.1 Comme il est construit localement, nginx-uwsgi communique avec les sockets de domaine Unix.
Ajout du paramètre gevent
uwsgi.ini
[uwsgi]
...
gevent = 40
La valeur ici est le nombre de travailleurs dans gevent, mais je ne connais pas la valeur optimale. (Je veux que quelqu'un me dise)
Il semble que gevent ne supporte pas le connecteur MySQL s'il s'agit de MySQL Python. Utilisez PyMySQL. De plus, lors de l'utilisation de Django, si PyMySQL est utilisé tel quel, il ne sera pas maillé avec l'implémentation backend, donc au démarrage,
import pymysql
pymysql.install_as_MySQLdb()
Tu as besoin de faire.
Au début du module de démarrage uwsgi,
import gevent.monkey
gevent.monkey.patch_all()
Appliquez le patch de singe avec. (À exécuter avant les autres importations) Il semble que gevent-monkey-patch = true peut également être utilisé dans uwsgi.ini, Dans mon environnement, j'ai eu une erreur autour de MySQL et cela n'a pas fonctionné. C'est peut-être lié à l'ordre d'importation interne.
Exécutez uwsgi comme d'habitude,
*** running gevent loop engine [addr:0x10e228440] ***
Si un message comme celui-ci s'affiche, le démarrage est réussi en mode gevent. Après cela, essayez la requête HTTP et si aucune erreur ne se produit, c'est OK.
Il est difficile de réaliser la différence entre no gevent et no gevent (car il est local). Je ne connais toujours pas la valeur optimale du paramètre, je vais donc essayer différentes choses et la vérifier.
Recommended Posts