[PYTHON] J'obtiens une erreur en essayant meinheld + WebSocket + mongodb

Au professeur meinheld qui m'est redevable au quotidien Il existe un WebSocketMiddleware qui facilite la mise en œuvre de WebSocket pour les applications wsgi existantes. Si c'est un code écrit par un hetareyaro comme moi, c'est très lent et inutilisable sans l'aide de meinheld, donc je ne peux pas me lever.

Donc, quand j'ai pensé à créer une application récente qui utilise WebSocket comme ça, Naturellement, mongodb sera choisi comme une option DB avec un tel élan. yep.

Donc, celui que mongodb fera en se référant à l 'Exemple d'application de meinheld WebSocketMiddleware à flask etc. écrit par l'auteur de meinheld lui-même. Je me demande si ce sera comme ça quand j'essaierai de construire

main.py


from shimehari import Shimehari
from mongoengine import connect
from meinheld import server, middleware
import config


def connectDB():
    connect(config['DB_NAME'])

app = Shimehari(__name__)

if __name__ == '__main__':
    connectDB()
    server.listen(("0.0.0.0", 3000))
    server.run(middleware.WebSocketMiddleware(app))

Essayez de commencer

$ (venv) bin/python main.py

Les gens Les gens Les gens Les gens Les gens

Erreur soudaine <  ̄Y^Y^Y^Y^Y^Y^Y ̄

Tracer en arrière

Traceback (most recent call last):
  File "main.py", line 25, in <module>
    connectDB()
  File "/project/path/main.py", line 13, in connectDB
    connect(config['DB_NAME'])
  File "/project/path/lib/python2.7/site-packages/mongoengine/connection.py", line 162, in connect
    return get_connection(alias)
  File "/project/path/lib/python2.7/site-packages/mongoengine/connection.py", line 126, in get_connection
    raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
mongoengine.connection.ConnectionError: Cannot connect to database default :
call from same greenlet

Je ne sais pas de quoi tu parles. Je me suis demandé si l'hôte autour du port était étrange Soudain, j'ai changé la mise en œuvre comme suit et cela a fonctionné.

main.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from shimehari import Shimehari


def connectDB():
    connect(config['DB_NAME'])

app = Shimehari(__name__)

if __name__ == '__main__':
    connectDB()
    #import après connexion à db
    from meinheld import server, middleware
    server.listen(("0.0.0.0", 3000))
    server.run(middleware.WebSocketMiddleware(app))

C'est une chose naturelle pour les mohikan qui s'amusent avec ça! C'est peut-être quelque chose comme ça Je ne suis pas du tout sorti quand j'ai cherché sur Google Je pense qu'il y a plus de gens qui utilisent node.js lorsqu'ils font WebSocket, donc je pense que c'est le cas, Pour le moment, cela a fonctionné avec ça, donc je suis content Est-il préférable de remplacer connecetDB par quelque chose comme avec?

Recommended Posts

J'obtiens une erreur en essayant meinheld + WebSocket + mongodb
J'obtiens une erreur en essayant d'installer maec 4.0.1.0 avec pip
J'obtiens une erreur lorsque je mets opencv dans pyautoGUI
J'obtiens [Erreur 2055] en essayant de me connecter à MySQL avec Heroku
J'obtiens une erreur avec les pandas d'importation.
Quand j'obtiens une erreur avec Pylint sur Windows Atom
J'ai eu une erreur en essayant d'installer Xgboost et sa solution
Que faire si vous obtenez une erreur lors du chargement de mnist
J'ai eu une erreur lors de l'enregistrement avec OpenCV
Quand j'obtiens une erreur de pilote chrome dans Selenium
J'obtiens une erreur avec toutes les commandes yum
Solution de contournement si vous obtenez une erreur lors de la tentative d'installation de PySide avec pip
J'ai eu une erreur en essayant d'exécuter Hello World en langue Go
J'obtiens une erreur d'importation avec Python Beautiful Soup
Lorsqu'une erreur se produit dans le scraping python (requêtes)
J'ai eu une erreur lors de l'utilisation de Tensorboard avec Pytorch
J'obtiens une erreur lors de l'installation de scipy sur t2.micro car je n'ai pas assez de mémoire
J'obtiens une erreur lorsque j'essaie d'élever Python à la série 3 en utilisant pyenv dans Catalina
Que faire si vous obtenez une erreur non définie lorsque vous essayez d'utiliser pip avec pyenv
J'obtiens une ImportError dans appengine_config.py
J'ai eu une erreur lorsque j'ai exécuté composer global require laravel / installer
J'obtiens une erreur du système d'exploitation: [Errno 8] Erreur de format d'exécution lors de l'exécution d'une application Flask avec une commande python
J'ai eu une erreur lorsque j'ai exécuté meteor add accounts-password
J'obtiens une erreur lorsque je mets un plug-in Python dans Visual Studio Code sous l'environnement pyenv
J'obtiens un UnicodeDecodeError en essayant de me connecter à oracle avec python sqlalchemy
Lorsque j'essaie de mettre à niveau pip, après avoir échoué, on me demande de mettre à niveau et de boucler indéfiniment
Que faire si vous obtenez une erreur en essayant d'envoyer un message dans tasks.loop () immédiatement après le démarrage
J'obtiens une erreur ~ est zéro, U singulier lors du passage d'une matrice distribuée co-distribuée de la couche linéaire à MultivariateNormal
Erreur d'importation: impossible d'importer le nom 'Flask' lorsque le nom de fichier est flask.py dans Flask
J'ai eu une erreur lorsque j'ai mis opencv dans python3 avec Raspeye [Remedy]
Une erreur se produit lors de la tentative d'importation de scikit-learn après la connexion à Oracle avec SQL Alchemy
Que faire si vous obtenez une erreur lors de l'installation de python avec pyenv
Si vous obtenez une longue erreur lors de la tabulation d'un shell interactif avec Anaconda
J'ai essayé d'obtenir une image en grattant
J'obtiens une UnicodeDecodeError lors de l'exécution avec mod_wsgi
Revenir en arrière lorsqu'une erreur se produit avec le tissu
Erreur lors de la tentative d'installation de psycopg2 en Python
Une erreur se produit lors de l'importation de japandas (problème non résolu)
Que faire si vous obtenez une erreur OpenSSL lors de l'installation de Python 2 avec pyenv
Lorsque j'essaye d'importer des pandas sur macOS, j'obtiens l'erreur No module named'_bz2 '
Quand j'essaye d'installer mysqlclient avec Django, j'obtiens l'erreur: la commande 'gcc' a échoué avec l'état de sortie 1.
Je souhaite envoyer un message d'erreur en japonais avec le formulaire de changement de mot de passe django
Que faire si vous obtenez une erreur d'importation lors de l'importation de matplotlib avec Jupyter
J'ai eu une erreur lorsque j'installe des pandas sur Mac, alors je l'ai traitée