Hỏi về tự re-conect mysql trong project nodejs



  • Mình có làm cái project nodejs . kết nối mysql chạy db . Sau khi DB server bị lỗi thì server bị disconnect và ko tự connect lại. Ai đã từng làm rồi thì cho mình ý kiến với . Thanks



  • @nvs2394 DB server bị lỗi thì bạn phải fix server đó , App nó có tự Fix được server DB đâu mà nó connect lại được.
    Thinklogic, please.



  • @hidemanvn bạn ko hiểu câu hỏi của mình. Khi app disconnect với mysql thì mình muốn nó reconnect lại sau khi mysql đã được fix



  • Ít ra thì bạn cũng phải mô tả rõ cái vấn đề nó thế chứ.
    Bạn có thể dùng handle Disconnect kết hợp cùng setTimeout để App connect lại khi Server sẵn sàng trở lại.

    var mysql = require('mysql');
    var DB_CONFIG = {...} 
    ...
    var MYSQL; 
    var handleDisconnect = function(DB_CONFIG) {
     MYSQL = mysql.createConnection(DB_CONFIG);
     MYSQL.connect(function(err){
       console.error('  >> MYSQL ERROR :', err);
       setTimeout(function(){
         return  handleDisconnect(DB_CONFIG);
       }, 5000);  
     });
    
    MYSQL.on('error',function(err){
      // when connection is lost
      if(err.code === 'PROTOCOL_CONNECTION_LOST') {
        return handleDisconnect(DB_CONFIG);
      } else {
       // other error
       throw err; 
      }
    });
    };
    handleDisconnect(DB_CONFIG);
    

Log in to reply