Frère, j'ai rencontré un bug dans mon projet actuel qui ne peut pas être reproduit
La performance spécifique est :
La ligne de commande du nœud montre que la demande peut être reçue
La réception ne peut recevoir aucun retour du serveur
La réception publie les données en arrière-plan, la base de données n'a pas été écrite
Redémarrez le programme de nœud et il fonctionnera normalement
Il s'accompagne d'un crash de la base de données, aucune donnée n'est perdue, la causalité ne peut pas être confirmée, et c'est le cas ça n'arrive pas en même temps
Actuellement, il n'y a pas de solution et le problème ne peut pas être reproduit. Il n'y a que quelques suppositions :
Exception de nœud Le nœud semble être bloqué lors de l'exécution d'une certaine partie du programme, mais le programme est entièrement écrit de manière asynchrone. Je n'ai vu aucun endroit où la synchronisation est utile. Je ne connais pas la couche sous-jacente du nœud. , et je ne sais pas si cette situation existe
Exception de base de données Cela semble plus raisonnable, car la ligne de commande s'imprime, indiquant que le programme ne doit pas être mort, puis la requête à la base de données n'est jamais renvoyée. Le programme semble être suspendu, mais il y a quelque chose d'étrange car le. la base de données est erronée. Alors pourquoi le redémarrage du programme de nœud peut-il fonctionner normalement ?
Exception du pilote de base de données Si tel est le cas, le redémarrage du programme semble normal et il y a une explication. Les paramètres du pilote devraient être corrects
.version du nœud : 6.10.* LTS Framework : express
Serveur :win server 2012
Base de données : arangodb Pilote : arangojs
Questions à poser à tout le monde :
J'ai vu un article sur Internet sur les instructions pour que Node compte le temps d'exécution de chaque fonction... Je ne l'ai pas enregistré et je l'ai oublié (embarrassant, je ne le trouve pas même si je le recherche). . Quelqu'un sait ?
Quelqu'un a-t-il rencontré des problèmes similaires ? Quelle en est la raison et comment le déboguer et le résoudre ?
Comment créer quelque chose dans node.js ou express qui ne gérera pas la réponse si elle dépasse une certaine valeur
Toutes suggestions
bonnes vacances
J'ai rencontré une situation similaire. La base de données est MySQL. La raison en est qu'une concurrence élevée génère un grand nombre de connexions à la base de données. D'une part, la base de données a une limite sur le nombre de connexions. ne déconnecte pas la base de données une fois l'opération terminée ou le pool de connexions au pool n'a pas été libéré, pour référence uniquement.