Mongoose: рдбрд┐рд╕реНрдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рдж рджреЛрдмрд╛рд░рд╛ рдХрдиреЗрдХреНрдЯ рди рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдЕрдХреНрддреВре░ 2016  ┬╖  47рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Automattic/mongoose

рек.рек.резрез рд╕реЗ >=рек.рем.рез рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рд░реИрдВрдбрдо рдбрд┐рд╕реНрдХрдиреЗрдХреНрд╢рди рдорд┐рд▓рддреЗ рд╣реИрдВ рдФрд░ рдиреЗрд╡рд▓рд╛ рдХрднреА рджреЛрдмрд╛рд░рд╛ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдиреЗрд╡рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг: 4.6.5
рдореЛрдВрдЧреЛрдбрдм рд╕рдВрд╕реНрдХрд░рдг: 3.2.9

рдЗрд╕ рддрд░рд╣ рдореИрдВ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рддрд╛ рд╣реВрдВ:

    var uri = 'mongodb://USENAME:PASSWORD<strong i="9">@host1</strong>:port1,host2:port2/database?authSource=admin';

    var options = {};
    options.server = {
      auto_reconnect: true,
      poolSize: 5,
      socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 },
      reconnectTries: 3000
    };

    options.replset = {
      auto_reconnect: true,
      poolSize: 5,
      socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 },
      reconnectTries: 3000
    };

    var db = mongoose.createConnection(uri, options);

    mongoose.connection.on('error', function(err) {
      console.log('MONGODB ERROR MONGOOSE LEVEL ' + server, err);
    });

    db.on('connecting', function() {
      console.info('MONGODB ' + server + ' connecting.');
    });

    db.on('error', function(err) {
      console.log('MONGODB ERROR ' + server, err);
    });

    db.on('close', function(err) {
      console.log('MONGODB CLOSE ' + server, err);
    });

    db.on('connected', function() {
      console.info('MONGODB ' + server + ' connected successfully.');
    });

    db.once('open', function callback() {
      console.info('MONGODB ' + server + ' opened successfully.');
    });

    db.on('reconnected', function() {
      console.info('MONGODB ' + server + ' reconnected.');
    });

    db.on('timeout', function() {
      console.info('MONGODB ' + server + ' timeout.');
    });

    db.on('disconnected', function() {
      console.info('MONGODB ' + server + ' disconnected');
    });

рдпрд╣ рдореБрдЭреЗ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рд╣реИ:

pid:3429 MONGODB geo_uri connected successfully.
pid:3429 MONGODB geo_uri opened successfully.
pid:3429 MONGODB dashboards_db connected successfully.
pid:3429 MONGODB dashboards_db opened successfully.
pid:3429 MONGODB tweet_analytics_db connected successfully.
pid:3429 MONGODB tweet_analytics_db opened successfully.
pid:3429 MONGODB fullcontact_enrichment_db disconnected
pid:3429 MONGODB ERROR fullcontact_enrichment_db { [MongoError: no valid replicaset members found]
  name: 'MongoError',
  message: 'no valid replicaset members found' }
pid:3429 MONGODB uri connected successfully.
pid:3429 MONGODB uri opened successfully.
pid:3429 MONGODB sync_reports_db connected successfully.
pid:3429 MONGODB sync_reports_db opened successfully.
pid:3429 MONGODB uri disconnected
pid:3429 MONGODB CLOSE uri

рдлрд┐рд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреНрд░рдХреГрддрд┐ рдХреЗ рдХрд╛рд░рдг, рдореИрдВ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рдкрд╛рдКрдВрдЧрд╛ред рдореБрдЭреЗ рдиреЛрдб.рдЬреЗрдПрд╕ рд╕реНрддрд░ рдкрд░ рд╕рдВрддреГрдкреНрдд рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реИред рд╡рд┐рдЪреНрдЫреЗрджрди рдХреЗ рдХрд╛рд░рдг рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ, рдХреНрдпрд╛ рдореИрдВ рд╕реНрд╡рдпрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@ рдХреЛрд╕реНрд▓реБрди рдХрд╛рдВрдЯрд╛ рдЕрдм рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рдХреНрд╕ рдЕрдм рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЙрдХреЗрдЯрдСрдкреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕реЙрдХреЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрд╣рд╛рдБ рдореЗрд░реЗ рд╕реЙрдХреЗрдЯ рд╡рд┐рдХрд▓реНрдк рдЕрдм рдХреИрд╕рд╛ рджрд┐рдЦрддреЗ рд╣реИрдВред

    var opts = {
      server: {
        socketOptions: {
          keepAlive: 1,
          socketTimeout: 0
        }
      },
      replSet: {
        socketOptions: {
          keepAlive: 1,
          socketTimeout: 0
        }
    }

рд╕рднреА 47 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

+1, рдкрд┐рдЫрд▓реЗ 5 рджрд┐рдиреЛрдВ рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд 2 рд░реБрдХрд╛рд╡рдЯреЗрдВ рдЖрдИрдВред рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рдореЗрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреНрд░реИрд╢ рдХрд░рдирд╛ рд╣реИ ( process.exit(0) ) рдЬрдм disconnected рдИрд╡реЗрдВрдЯ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдлрд┐рд░ рд╕реЗ рдареАрдХ рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдиреЗрд╡рд▓рд╛ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди reconnectTries * reconnectInterval рдЕрдВрддрд░рд╛рд▓ рдХреЗ рднреАрддрд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рдХрд╛рд░рдг error рдШрдЯрдирд╛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ (https://github.com/Automattic/mongoose/pull /рекремрелрей)ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпреЛрдВ рдиреЗрд╡рд▓реЗ/рдореЛрдВрдЧреЛ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдерд╛ред
рдЖрдк рдХреМрди рд╕реА рдореЛрдВрдЧреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ? рдПрдордПрд▓рдПрдмреА?

рд╣рдо рдЗрд╕реЗ рд╕реНрд╡рдпрдВ AWS рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ process.exit(0) рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ # рекремрелрей рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд┐рдП рд╣реИрдВ рдФрд░ рд╡рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдорд┐рд▓рд╛ рд╣реИред рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ:

2016-10-27T11:26:42 pid:5276 MONGODB sync_reports_db connected successfully.
2016-10-27T11:26:42 pid:5276 MONGODB sync_reports_db opened successfully.
.... 2 hours later
2016-10-27T13:45:45 pid:5276 MONGODB sync_reports_db disconnected
2016-10-27T13:45:45 pid:5276 MONGODB CLOSE sync_reports_db

рдХреЛрдИ error рдШрдЯрдирд╛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдирд╣реАрдВ рд╣реБрдИ? ( disconnected рдПрдХ рдХреЗ 30 рд╕реЗрдХрдВрдб рдмрд╛рдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)

рдирд╣реАрдВ, рд╕рдорд╕реНрдпрд╛ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдЬрдм рддрдХ рдореИрдВ рдХреБрдЫ рдЧрд▓рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, error рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдореМрдЬреВрдж рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрднреА рднреА рдЪрд▓ рд░рд╣реА рд╣реИ рдФрд░ рдиреЗрд╡рд▓рд╛ рдиреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдШрдЯрдирд╛ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рд╣рдореЗрдВ 4.6.5 рдмрд╛рдж рд╕реЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖ рд░рд╣реА рд╣реИрдВ - рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдиреЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдЯрдХ рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдХреЛрдИ error рдШрдЯрдирд╛ рдирд╣реАрдВред 4.5.3 рд╡рд╛рдкрд╕ рд▓реМрдЯрдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@loris рдпрд╣ 4.6.6 рдореЗрдВ https://github.com/Automattic/mongoose/commit/f7ebee0c992c45cdb27ba7f0675556b980cddaad рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?

@mck рд╣рд╛рдБ, https://github.com/Automattic/mongoose/commit/f7ebee0c992c45cdb27ba7f0675556b980cddaad error рдШрдЯрдирд╛ рдХреЛ рдареАрдХ рдХрд░реЗрдВ рдЬрдм mongodb рдХрдиреЗрдХреНрд╢рди рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рддрдВрддреНрд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ @ vkarpov15?

fwiw, рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП 40-50% рд╕рдордп рд╣реБрдЖ рдЕрдЧрд░ рд╣рдордиреЗ рдПрдХ рд╕реЗрд╡/рдЕрдкрдбреЗрдЯ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рд▓рдЧрднрдЧ 650kb рд▓рд┐рдЦрдирд╛)

рд╣рд╛рдБ, рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред рдЖрдк рдХрдиреЗрдХреНрд╢рди рдкрд░ close() рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ connect() рдлрд┐рд░ рд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред @loris рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рд╣реА рдЕрдиреБрднрд╡ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рднрд╛рд░реА рдмрдЪрдд/рдЕрджреНрдпрддрди рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ?

рд╣рдо рднреА рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдШрдЯрдирд╛ рдорд┐рд▓ рд░рд╣реА рд╣реИ (рдХрдиреЗрдХреНрд╢рди N рд╕реЗ ds0XXXXX-a0.mongolab.com:XXXXX рдЯрд╛рдЗрдо рдЖрдЙрдЯ рд╣реЛ рдЧрдпрд╛), рдЙрд╕рдХреЗ рдмрд╛рдж рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдИрд╡реЗрдВрдЯред рдФрд░ рдХрдиреЗрдХреНрд╢рди рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рд╕реЗрд╡рд╛ рдкрд░ рд╣рдореЗрдВ рдбреАрдмреА рдкрд░ рднрд╛рд░реА рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рдж рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдШрдЯрдирд╛ рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ 2 рдПрдо рд░рд┐рдХреЙрд░реНрдб рд╣рдЯрд╛ рд░рд╣реА рд╣реИред рдФрд░ рдлрд┐рд░ рдпрд╣ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИ (рдореЛрдВрдЧреЛрдЬрд╝ 4.6.6, рдбреАрдмреА рд╕рдВрд╕реНрдХрд░рдг 3.0.12)ред

рдпрд╣ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд╣реБрдЖ, рдХреБрдЫ рдорд┐рдирдЯ рдкрд╣рд▓реЗ, рдПрдордПрд▓рдПрдмреА рдкрд░ рднреА рдореЛрдВрдЧреЛрдбрдм рдЪрд▓ рд░рд╣рд╛ рд╣реИ (рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ)ред рд╣рдордиреЗ рдПрдХ рднрд╛рд░реА рдХреНрд╡реЗрд░реА рдЪрд▓рд╛рдИ, рдпрд╣ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ ( unhandledRejection { MongoError: connection 0 to ds****-a0.mongolab.com:**** timed out } , disconnected рдШрдЯрдирд╛ рдареАрдХ рд╕реЗ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд╣реБрдИ рдереА, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рдж рдХреБрдЫ рднреА рдирд╣реАрдВ, рдирд╣реАрдВ error , рдирд╣реАрдВ reconnected рдЖрджрд┐, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЪрд▓ рд░рд╣рд╛ рдерд╛ рдФрд░ HTTP рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рд╣рдо рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддреЗ, рддрдм рддрдХ рд╡реЗ рд╕рднреА рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдиреЗрд╡рд▓рд╛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЪрд▓рд╛рддрд╛ рд░рд╣рд╛ рдЬреЛ рдмрдлрд░ рд╣реЛ рдЧрдП рдФрд░ рдХрднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдПред

рд╣рдорд╛рд░рд╛ рдиреЗрд╡рд▓рд╛ рд╕реЗрдЯрдЕрдк (рдиреЛрдб 7.0.0 рдкрд░ 4.6.5):

const mongoConnectOpts = { reconnectTries: 10, reconnectInterval: 500, socketOptions: { keepAlive: 300000, connectTimeoutMS: 30000 } };
mongoose.connect(process.env.MONGODB_URI, { server: mongoConnectOpts, replset: mongoConnectOpts });
mongoose.connection.on('error', err => {
  console.log({ event: 'mongoose:error', ...err });
  process.exit(0);
});
mongoose.connection.on('connected', () => console.log({ event: 'mongoose:connected' }));
mongoose.connection.on('disconnected', () => console.log({ event: 'mongoose:disconnected' }));
mongoose.connection.on('reconnected', () => console.log({ event: 'mongoose:reconnected' }));

рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди process.exit(0) рдкрд░ рднреА disconnected рдИрд╡реЗрдВрдЯ рдкрд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдФрд░ рдПрдХ рдирдпрд╛ рдореЛрдВрдЧреЛрдбрдм рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рд╣рд╛рдБ, рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рдмрд╛рдд рдкрд╣рд▓реЗ рдПрдордПрд▓рдмреА рдХреЗ рд╕рд╛рде рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИред рдЯреАрдмреАрдПрдЪ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдмрд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдХреНрд░реИрд╢ рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реВрдВрдЧрд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдзреАрдореА рд╕реНрдкреЙрдЯреА рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдореЛрдВрдЧреЛрдбрдм рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рдиреА рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреАрдмрдЧрд┐рдВрдЧ рдореЗрдВ рдПрдордПрд▓рдПрдмреА рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдп рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдм рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ (рдореЛрдВрдЧреЛрдЬрд╝, рдореЛрдВрдЧреЛ рдбреНрд░рд╛рдЗрд╡рд░, рдПрдордПрд▓рдПрдмреА рдпрд╛ рд╣реЗрд░реЛрдХреВ), рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рд╕реЗ, рдПрдХ рд╡реЗрдм рдЕрдиреБрд░реЛрдз рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдПрдХ рднрд╛рд░реА рдиреЗрд╡рд▓рд╛ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП 30 рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ) рдПрдХ рд╣реЗрд░реЛрдХреВ рдЕрдиреБрд░реЛрдз рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ (рдпрд╣ рдЙрд╕рдХреЗреЛрдХреВ рдореЗрдВ рдПрдХ рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рд╡реЗрдм рдЕрдиреБрд░реЛрдз рдХреЛ 30 рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ)ред рдПрдХ рдмрд╛рд░ рдЬрдм рдЙрд╕ рд╡реЗрдм рдЕрдиреБрд░реЛрдз рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЛрдИ рднреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡реЗрдм рдЕрдиреБрд░реЛрдз рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЗрд╡рд▓рд╛ рдХреНрд╡реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд╣ рднреА рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╢реВрдиреНрдп рдШрдЯрдирд╛ рдиреЗрд╡рд▓реЗ рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдХреА рдЬрд╛рддреА рд╣реИ (рдХреЛрдИ error , close , disconnected , рдЖрджрд┐ ...), рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдиреЗрд╡рд▓рд╛ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:

mongoose.Promise = global.Promise;
mongoose.set('debug', process.env.NODE_ENV === 'development');
const mongoConnectOpts = { reconnectTries: 10, reconnectInterval: 500, socketOptions: { keepAlive: 300000, connectTimeoutMS: 30000 } };
mongoose.connect(process.env.MONGODB_URI, { server: mongoConnectOpts, replset: mongoConnectOpts });
mongoose.connection.on('error', err => {
  logfmt.log({ event: 'mongoose:error', ...err });
  process.exit(0);
});
mongoose.connection.on('connected', () => logfmt.log({ event: 'mongoose:connected', uri: _.truncate(process.env.MONGODB_URI) }));
mongoose.connection.on('disconnected', () => {
  logfmt.log({ event: 'mongoose:disconnected' });
  process.exit(0);
});
mongoose.connection.on('close', () => logfmt.log({ event: 'mongoose:close' }));
mongoose.connection.on('reconnected', () => logfmt.log({ event: 'mongoose:reconnected' }));

// Setup Redis cache (Default cache TTL: 60 seconds)
cachegoose(mongoose, { engine: 'redis', client: redisCache }, process.env.NODE_ENV === 'development');

@Ioris рдХреНрдпрд╛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рддрдм рднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдХреИрд╢рдЧреЛрдЬрд╝ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ?

@ vkarpov15 рдЗрд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рд▓реЗрдХрд┐рди рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрдЧ рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рджрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╣рдо рдХреИрд╢ рдЕрдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдЙрддреНрдкрд╛рджрди рдЪрд▓рд╛рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред
@aartiles @mck- @lushchick рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧ рдиреЗрд╡рд▓рд╛ рдХреИрд╢ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ https://github.com/christkv/mongodb-core/issues/148 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ

рд╣рдо рдиреЗрд╡рд▓рд╛ рдХреИрд╢ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗред

рдореИрдВ рдЕрднреА рднреА рдЗрд╕рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдЖрдкрдХреЛ рдЕрдм рддрдХ рдХреНрдпрд╛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ:

  • рдореИрдВ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛: рдореИрдВ рд╣рд░ рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рддреЗрдЬрд╝ рдХреНрд╡реЗрд░реА рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рд▓реВрдк рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдХреБрдЫ рджреЗрд░реА рдмрд╛рдж рдореЗрдВ, рдореИрдВ рдПрдХ рднрд╛рд░реА рдХреНрд╡реЗрд░реА рдЪрд▓рд╛рддрд╛ рд╣реВрдВ (рдЬреИрд╕реЗ рдПрдХ рд▓рд╛рдЦ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдПрдХ рдЕрдирдЗрдВрдбреЗрдХреНрд╕реНрдб рдХреНрд╡реЗрд░реА)ред рд╕рднреА рдкреНрд░рд╢реНрди (рддреЗрдЬрд╝ рд╡рд╛рд▓реЗ рднреА) рд▓реЙрдХ/рдЯрд╛рдЗрдо рдЖрдЙрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдХреЛрдИ рдиреЗрд╡рд▓рд╛ рдШрдЯрдирд╛ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓ рджреА рдЬрд╛рдПрдЧреАред
  • рдореБрджреНрджрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ 4.6.5 , рдореЗрдВ рдбрд╛рдЙрдирдЧреНрд░реЗрдб 4.6.4 рдореБрджреНрджрд╛ (рддреАрд╡реНрд░ рдХреНрд╡реЗрд░реА рдЕрднреА рднреА рдЬрдмрдХрд┐ рднрд╛рд░реА рдХреНрд╡реЗрд░реА рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ) рдХреЛ рдареАрдХ
  • рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ:

    • рдиреЗрд╡рд▓рд╛ рдХреИрд╢ рдкреНрд▓рдЧрдЗрди

    • рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ

рдореИрдВрдиреЗ рдФрд░ рдЕрдзрд┐рдХ рдЦреБрджрд╛рдИ рдХреА рдФрд░ рд╕рдорд╕реНрдпрд╛ [email protected] рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЖрдИ, рдФрд░ рдмрдЧреНрдЧреА рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИ https://github.com/mongodb/node-mongodb-native/pull/1418
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЯрд╛рдЗрдкреЛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рдЗрд╡реЗрдВрдЯрдирд╛рдо (рдЯрд╛рдЗрдкреЛ рдХреЗ рд╕рд╛рде) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдЫ рдбреАрдкреАрдПрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

@loris рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЧрд▓рдд рдИрд╡реЗрдВрдЯ рдирд╛рдо рд╡рд╛рд▓реЗ рд╢реЗрд╖ рд╕рдВрджрд░реНрдн рдХрд╣рд╛рдВ рд╣реИрдВ? рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред

@jakesjews рдХреЛрдИ рд╕рдВрджрд░реНрдн рднреА рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдХрд╛рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреА рдорд╢реАрди рдкрд░ рдмреЗрдореЗрд▓ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА рд╣реЛ, рдореИрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрдКрдВрдЧрд╛

рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реЛрдирд╛: рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХреЗ рдмрд╛рдж рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ред рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдХрд┐рд╕реА рднреА рдиреЗрд╡рд▓рд╛ рдбреАрдмреА рдСрдкрд░реЗрд╢рди (рдСрдкрд░реЗрд╢рди рдмрдлрд░рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдордп рд╕рдорд╛рдкреНрдд) рдкрд░ рд▓рдЯрдХрдХрд░ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред

@jakesjews рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рднреА рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ рдФрд░ рдПрдХрд▓ рдиреЛрдб рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдХреЛрд░ replset.js рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред

рдиреЛрдб-рдореЛрдВрдЧреЛрдбрдм-рдиреЗрдЯрд┐рд╡ рдХреЗ рднреАрддрд░ рд╕рдХреНрд╖рдо рдбрд┐рдмрдЧ рд▓реЙрдЧрд┐рдВрдЧ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдПрдЪрдП рдкреБрди: рдХрдиреЗрдХреНрд╢рди рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

attemptReconnect for replset with id successful resuming topologyMonitor 1

рдиреЛрдб-рдореЛрдВрдЧреЛрдбрдм-рджреЗрд╢реА рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдпрд╣ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЕрдкрдирд╛ рдкреНрд░рдпрд╛рд╕ рд░реАрдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рдиреЗрд╡рд▓рд╛ рдХрднреА рднреА рдПрдХ рдХрдиреЗрдХреНрдЯреЗрдб рдпрд╛ рдкреБрди: рдХрдиреЗрдХреНрдЯреЗрдб рдШрдЯрдирд╛ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди

рдЬреИрд╕рд╛ рдХрд┐ @loris рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, process.exit(0) -> рд╕реЗрд╡рд╛ рдХрд╛ рдкреБрдирд░рд╛рд░рдВрдн (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╕реАрдзреЗ рдкреНрд░рддрд┐рдХреГрддрд┐-рд╕реЗрдЯ рдХреЗ рдкреБрди:

рдиреЗрд╡рд▓рд╛@рек.рем.рео
рдореЛрдВрдЧреЛрдбрдм@2.2.11

@ mck- рдЖрдкрдХреЗ рдЬреИрд╕рд╛ рд╣реА рдорд┐рд▓рд╛, 4.5.3 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкреБрди: рдХрдиреЗрдХреНрдЯ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИред

рдореИрдВ рек.рел.резреж рдкрд░ рд╕рднреА рддрд░рд╣ рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдпрд╣ рек.рем.реж рдкрд░ рд╡рд┐рдлрд▓ рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдП, рдЬрд╣рд╛рдВ рдкрд╣рд▓реА рдмрд╛рд░ рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ рд░реАрдХрдиреЗрдХреНрдЯ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИред рд╡рд░реНрддрдорд╛рди рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдореЛрдВрдЧреЛрдбрдм рдбреНрд░рд╛рдЗрд╡рд░ 2.2.9 рдХреЗ рдЙрдиреНрдирдпрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@loris рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдЗрд╕реЗ рдЖрдЬрдорд╛ рд╕рдХреЗрдВ?

рдореИрдВ рдЕрднреА рднреА рдЗрд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдкрд╣рд▓реЗ рдЯрд╛рдЗрдкреЛ рдлрд┐рдХреНрд╕ рдХрдорд┐рдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдкрд░рд╛рдзреА https://github.com/christkv/mongodb-core/pull/146/commits/09caa9d1e5423acd2f8f154f7b7430028e77e57f рд╣реИ
рдПрдХ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЛрддрд╛ рд╣реИ:

  • mongoose 4.6.8 , рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ mongodb (3.2) рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИ
  • 2 рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдорд╛рд░реНрдЧ, рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдиреЗрд╡рд▓рд╛ рдХреНрд╡реЗрд░реА (рдХрдИ рд╕реЗрдХрдВрдб) рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ, рдПрдХ рддреЗрдЬреА рд╕реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдиреЗрд╡рд▓рд╛ рдХреНрд╡реЗрд░реА рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЗрдВрдЯрд░рд╡рд▓/рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдиреЛрдб рдореЗрдВ рдиреЗрд╡рд▓рд╛ рдХреНрд╡реЗрд░реА рдЪрд▓рд╛рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдХрд┐ рдкреВрд▓ рдХрдиреЗрдХреНрд╢рди рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ)
  • рдпрджрд┐ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдорд╛рд░реНрдЧ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рддреЗрдЬреА рд╕реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдорд╛рд░реНрдЧ рдХреЛ рд╣рд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдмрд╛рдж рд╡рд╛рд▓рд╛ рдмрд┐рдирд╛ рд╡рд╛рдкрд╕ рдЖрдП рдЪрд▓рддрд╛ рд░рд╣реЗрдЧрд╛
  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рдмрдЬрд╛рдп poolSize рдХреЛ 50 рдХрд░рдирд╛, рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░реЗрдВ
  • mongodb-core рд╕реЗ рдкрд┐рдЫрд▓реА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░реЗрдВ (рддреЗрдЬрд╝ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдорд╛рд░реНрдЧ рдХреБрдЫ рдПрдордПрд╕ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдорд╛рд░реНрдЧ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ) (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреВрд▓ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде)
  • рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ https://github.com/christkv/mongodb-core/pull/146/commits/09caa9d1e5423acd2f8f154f7b7430028e77e57f рдиреЗ рдХреБрдЫ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдиреЗрд╡рд▓рд╛ рдПрдХ рдкреВрд▓ рдореЗрдВ рд╣рд░ рдЙрдкрд▓рдмреНрдз рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдПрдХ рдлрд┐рдХреНрд╕ рд╕рд┐рд░реНрдл рдореЛрдВрдЧреЛ-рдХреЛрд░ рдореЗрдВ рдЙрддрд░рд╛ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@loris рд╣рд╛рдБ рдкреВрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреАред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдзреАрдореА рдЯреНрд░реЗрди рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдореЛрдВрдЧреЛрдбрдм рд╕рд░реНрд╡рд░ рдПрдХ рд╕рд╛рде poolSize рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рдкреВрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝рд╛рдиреЗ рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреА, рдмрд╕ рдЗрд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рди рдмрдврд╝рд╛рдПрдВ, рдпрд╛ рдЖрдк WiredTiger рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред

рдирдорд╕реНрддреЗ,
рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди? рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп auto_reconnect рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рдореЛрдВрдЧреЛрдбрдм 2.2.11 рдХреЗ рд╕рд╛рде 4.7.0 рдиреЗрд╡рд▓рд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЕрднреА рднреА рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдореЛрдВрдЧреЛрдб рд╕рдВрд╕реНрдХрд░рдг 3.2.10 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдореЛрдВрдЧреЛрдб рдХреЗ рддреАрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╣реЛрд╕реНрдЯ (рд▓реИрдкрдЯреЙрдк) рдкрд░ рд╕рдмрдХреБрдЫ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдореБрджреНрджрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореИрдВ рдореЛрдВрдЧреЛ/рдореЛрдВрдЧреЛрдЬрд╝/рдиреЛрдб/рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВред рдиреЗрд╡рд▓рд╛ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдиреЛрдб рдРрдк рднреА рдЙрд╕реА рд╣реЛрд╕реНрдЯ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рд╕рднреА рдореЛрдВрдЧреЙрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмрдВрдж рдХрд░рдХреЗ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
(рд▓реЙрдиреНрдЪрдХреНрдЯрд▓ рд╕реНрдЯреЙрдк рдореЛрдВрдЧреЛрдб01; рд▓реЙрдиреНрдЪрдХреНрдЯрд▓ рд╕реНрдЯреЙрдк рдореЛрдВрдЧреЛрдб02; рд▓реЙрдиреНрдЪрдХреНрдЯрд▓ рд╕реНрдЯреЙрдк рдореЛрдВрдЧреЛрдб03)
рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдлрд┐рд░ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ (рд▓реЙрдиреНрдЪрдХреНрдЯрд▓ рдХрдорд╛рдВрдб рдореЗрдВ "рд╕реНрдЯреЙрдк" рдХреЛ "рд╕реНрдЯрд╛рд░реНрдЯ" рд╕реЗ рдмрджрд▓реЗрдВ)ред рдореЗрд░рд╛ рдРрдк рдХрднреА рднреА рдореЛрдВрдЧреЛ рд╕реЗ рджреЛрдмрд╛рд░рд╛ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВ рдореЛрдВрдЧреЛрдб рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдиреЗрд╡рд▓рд╛ рдареАрдХ рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИред

рд▓реЙрдЧ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ рдпрд╛ рдпрджрд┐ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реИ рддреЛ рдкреИрдЪ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдХреБрдЫ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╕реНрд░реЛрдд рдорд┐рд▓ рдЧрдпрд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдСрдЯреЛрд░реЗрдХрдиреЗрдХреНрдЯ рд╕рд╣реА рд╣реИ рддреЛ рдХрдиреЗрдХреНрд╢рди рдмрдлрд░ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/Automattic/mongoose/blob/master/lib/drivers/node-mongodb-native/connection.js#L153 рдХрдиреЗрдХреНрд╢рди рдкрд░ рдХрд░реАрдмреА рдШрдЯрдирд╛рдПрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореЛрдВрдЧреЛрдбрдм-рдиреЗрдЯрд┐рд╡ https://github.com/mongodb/node-mongodb-native/blob/2.2/lib/replset.js рдореЗрдВ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рдХреЛрдИ рдФрд░ рдСрдЯреЛ рд░реАрдХрдиреЗрдХреНрдЯ рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдиреЛрдб рд╕реЗ рдХреЛрдИ рднреА рдХрд░реАрдмреА рдШрдЯрдирд╛ рдмрдлрд░ рдХреЛ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдореБрдЭреЗ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднрд╛рдЧреНрдп рдорд┐рд▓рд╛ рд╣реИ https://github.com/eflexsystems/mongoose/commit/5ac12727f34b41791f94643b66c8cc88aff4d66a рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╕рдордп рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдХреЛрдИ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

@joeldodson рдЖрдк рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рдерд╛ред рдмрд╕ рдПрдХ рд╣реЗрдб рдЕрдк рд░рд┐рд▓реАрдЬрд╝>= 4.6.0 рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдореИрдВ рдЗрд╕ рдмреАрдЪ рек.рел.резреж рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдпрд╣ рдПрдХ рд░рд┐рдкреНрд▓реЗрд╕реЗрдЯ рдФрд░ рд╕рд┐рдВрдЧрд▓ рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж @jakesjews рдФрд░ @kog13

рдореИрдВрдиреЗ 4.5.10 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдиреЗрд╡рд▓рд╛ рдлрд┐рд░ рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдореЗрдВ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд░реЛрдХ рджрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж db.readyState рдХреЛ рд╕рд╛рдлрд╝ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ (рдЗрд╕рд▓рд┐рдП рд╡реЗ рдРрдк рдХреЗ рдбреАрдмреА рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдХрддрд╛рд░рдмрджреНрдз рдирд╣реАрдВ рд╣реИрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ 4.5.10 рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдпрд╛ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рд╕реВрдЪрдирд╛рдПрдВ рдирд╣реАрдВ рдорд┐рд▓реАрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддрд░реНрдХ рд╣реИ рдХрд┐ рдРрдк рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдбреАрдмреА рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 5 рд╕реЗрдХрдВрдб рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рд╛рде рд▓реВрдк рдореЗрдВ рдмреИрдарддрд╛ рд╣реИред рд╣рдордиреЗ рдЗрд╕реЗ db.on('closed', function(){...}) рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реА рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдХрд┐рд╕реА рднреА рдкреБрди: рдХрдиреЗрдХреНрдЯ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╡рд┐рд░реЛрдз рд╣реЛрдЧрд╛ред рдЪреВрдВрдХрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдкреБрди: рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдареАрдХ рд╣реИред рд╕рд╛рде рд╣реА рд╣рдо рд╕рд░реНрд╡рд░ рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ auto_reconnect рдХреЛ рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред

@jakesjews - рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдкреИрдЪ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реБрдЖред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рдЧрдпрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рдкреИрдЪ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдерд╛ рдХрд┐ рдХрд░реАрдмреА рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдИ рд╣реИ рдФрд░ рд░реЗрдбреАрд╕реНрдЯреЗрдЯ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╣реИ рддреЛ рдореБрдЭреЗ auto_reconnect рдХреЗ рд▓рд┐рдП рдФрд░ рдкреИрдЪ рдЖрдЬрд╝рдорд╛рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред рдореИрдВ рднреА рдЪрд╛рд░реЛрдВ рдУрд░ рдЦреБрджрд╛рдИ рдХрд░рддрд╛ рд░рд╣реВрдВрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рджред

@joeldodson рдКрдкрд░ рджрд┐рдП рдЧрдП рдкреИрдЪ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдкрдХреЛ рдореЛрдВрдЧреЛ-рдХреЛрд░ рдкрд░ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рднреА рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рдХреНрд╕реЗрд╕ рд╣реИрдВ рдХрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдореЙрдирд┐рдЯрд░ рдХрдиреЗрдХреНрд╢рди рдЬреАрд╡рд┐рдд рд░рд╣рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдореЗрд░реЗ рдХрд╛рдВрдЯреЗ рдХреЛ рдЖрдЬрдорд╛рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдиреЗрд╡рд▓реЗ рдХреЗ рд╕рд╛рде рдЕрдм рдЯрд╛рдЗрдордЖрдЙрдЯ рдФрд░ рдлреЗрд▓рдУрд╡рд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдкрд░ рд╣реВрдВред рдЕрдЧрд░ рдХреЛрдИ рдФрд░ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рдЖрдк рд╕реЙрдХреЗрдЯрдСрдкреНрд╢рди рдореЗрдВ рд╕реЙрдХреЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореЗрд░реЗ рдиреЗрд╡рд▓реЗ рдХреЗ рдХрд╛рдВрдЯреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

рд╕реЙрдХреЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдореЛрдВрдЧреЛ-рдХреЛрд░ рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЕрднреА рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕рд┐рдХреБрдбрд╝рддреЗ/рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИред рдкреВрд▓ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдЬрдм рдпрд╣ рдПрдХ рдирдпрд╛ рдХрдиреЗрдХреНрд╢рди рдЬреЛрдбрд╝рддрд╛ рд╣реИ рддреЛ рдХрдиреЗрдХреНрд╢рди 30 рд╕реЗрдХрдВрдб рдХреА рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЯрд╛рдЗрдордЖрдЙрдЯ рдЗрд╡реЗрдВрдЯ рдкреВрд▓ рд╕реЗ рдирд┐рд╖реНрдХрд╛рд╕рди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ 30 рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕реАрдорд╛ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдЪреЗрдХ рднреА рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдПрдХ рджрд┐рд▓ рдХреА рдзрдбрд╝рдХрди рд╣реИ рдЬреЛ рд╣рд░ 2 рд╕реЗрдХрдВрдб рдореЗрдВ рдЪрд▓рддреА рд╣реИ рдФрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рд╛рдл рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ 30 рдпрд╛ рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдз рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрддрд╛рд░рдмрджреНрдз рд╣реИрдВ, рддреЛ рдпрд╣ рдЙрди рд╕рднреА рдХреЛ рджрд┐рд▓ рдХреА рдзрдбрд╝рдХрди рдХреЗ рдмреАрдЪ рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд░ рджреЗрдЧрд╛ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛ред рдЕрднреА рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рдкрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдкреВрд▓ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдпрджрд┐ рд╡реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реИрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдЖрдХрд╛рд░ рдХреЛ рд▓рдЧрднрдЧ 50 рдФрд░ 50 рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдРрд╕рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд▓рдЧрднрдЧ 30 рд╕реЗрдХрдВрдб рдореЗрдВ рдкреВрд▓ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджрд┐рд▓ рдХреА рдзрдбрд╝рдХрди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣реЛрддрд╛ рд╣реИред

рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрд╛рдо рд╕реЗ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдЖ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрди рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдЬрд▓реНрдж рд╣реА рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реВрдВрдЧрд╛ред

рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж @jakesjewsред рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдиреЗрд╡рд▓реЗ рдФрд░ рдореЛрдВрдЧреЛрдбрдм-рдХреЛрд░ рд░реЗрдкреЛ рдореЗрдВ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ред рдкреБрди: рдХрдиреЗрдХреНрдЯ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред рдореБрдЭреЗ 'рдХрдиреЗрдХреНрдЯреЗрдб' рдФрд░ 'рд░реАрдХрдиреЗрдХреНрдЯреЗрдб' рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рдорд┐рд▓рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдореЛрдВрдЧреЛ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдорд┐рд▓рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд░реЗрдбреАрд╕реНрдЯреЗрдЯ рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА 0 рд╣реИред

рдореБрдЭреЗ рд▓реЙрдЧ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред

рдЕрднреА рднреА [email protected] рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИ

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдЫ рдирдпрд╛?

рдпрд╣рд╛рдВ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рднреА рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХрдиреЗрдХреНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдиреЗрд╡рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЙрдиреНрдирдпрди рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдХреБрдЫ рд╕реЗрдХрдВрдб рд▓реЗрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдХреНрд╡реЗрд░реА рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд░ рджреЗрддреА рд╣реИ, рдЬрд╣рд╛рдВ рдкрд╣рд▓реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛ред

рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдиреНрдпрдерд╛ рдкреИрдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛрдиреЗ рдкрд░ рд╢рд╛рдпрдж @jakesjews рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рддрдм рддрдХ 4.4.X . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдпрджрд┐ рд╕рдорд╕реНрдпрд╛ рдореЛрдВрдЧреЛ-рдХреЛрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдЧ рд╣реИ, рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдиреЗрд╡рд▓рд╛ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдиреЗрд╡рд▓рд╛ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдк mongodb-core рд░реЗрдкреЛ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ mongoose рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ mongodb-core рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред рд╢рд╛рдпрдж mongoose рдХреЛ mongodb-core рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@jakesjews рдпрд╣ рджреЗрдЦрдХрд░ рдХрд┐ [email protected] [email protected] рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ [email protected] рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЗ рдХрд╛рдВрдЯреЗ рд╕реЗ рдлрд┐рдХреНрд╕ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдХреЗ?

рдФрд░ рдЖрдкрдХреЗ рдХрд╛рдВрдЯреЗ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдЕрдм рдПрдХрдорд╛рддреНрд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ рдЬреЛ 4.7.x рдФрд░/рдпрд╛ 4.8.x рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╣реИ?

@ рдХреЛрд╕реНрд▓реБрди рдХрд╛рдВрдЯрд╛ рдЕрдм рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рдХреНрд╕ рдЕрдм рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЙрдХреЗрдЯрдСрдкреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕реЙрдХреЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрд╣рд╛рдБ рдореЗрд░реЗ рд╕реЙрдХреЗрдЯ рд╡рд┐рдХрд▓реНрдк рдЕрдм рдХреИрд╕рд╛ рджрд┐рдЦрддреЗ рд╣реИрдВред

    var opts = {
      server: {
        socketOptions: {
          keepAlive: 1,
          socketTimeout: 0
        }
      },
      replSet: {
        socketOptions: {
          keepAlive: 1,
          socketTimeout: 0
        }
    }

@jakesjews рдареАрдХ рд╣реИ, рддреЗрдЬреА рд╕реЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :)ред

рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдореЛрдВрдЧреЛрдбрдм-рдХреЛрд░ рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рдо рдЗрд╕ рдмрдЧ рдХрд╛ рд╕рдорд╛рдзрд╛рди рджреЗрдЦреЗрдВрдЧреЗ? рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдкреАрдЖрд░ рдпрд╛ рдкреНрд░рддрд┐рдмрджреНрдз рд╣рдо рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@Koslun рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдореБрджреНрджрд╛ рдЕрднреА рднреА 2016 рд╕реЗ рдЦреБрд▓рд╛ рд╣реИ: open_mouth:

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдореЛрдВрдЧреЛрд╕ 5.x рдХреЗ рд╕рд╛рде рдореЛрдВрдЧреЛрдбрдм рдбреНрд░рд╛рдЗрд╡рд░ 3.3.4 рдФрд░ рдореЛрдВрдЧреЛрдбреАрдмреА рд╕рд░реНрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг 4.x рдкрд░ рд╣реЛ рд╕рдХрддреА рд╣реИ? :рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛:

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ, рдЕрдЧрд░ рдкреБрди: рдХрдиреЗрдХреНрд╢рди рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢реЗрдВ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред

рдлреЙрдХреНрд╕ рдЙрджрд╛рд╣рд░рдг, рдпрджрд┐ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ 30 рдкрд░ рд╕реЗрдЯ рд╣реИ, рдФрд░ рдПрдХ рдмрд╛рд░ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛ рдЧрдпрд╛ рдиреЗрд╡рд▓рд╛ 5 рдмрд╛рд░ рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдиреЗрдХреНрд╢рди рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИред
рдЕрдЧрд▓реА рдмрд╛рд░ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЬрд╛рдиреЗ рдкрд░, рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдЙрдВрдЯрд░ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
рдХреНрдпрд╛ рдпрд╣ 30 рдмрд╛рд░ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛?
рдпрд╛ 25 рдмрд╛рд░?

@ szabolcs-szilagyi рд╣рд╛рдБ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдЧрд░ рдЖрдк useUnifiedTopology рд╕реЗ true рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

@ bhaveshvyas007 рд╣рд╛рдБ рдпрд╣ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рд╣реИ

рднрд╛рд╡реА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП:

рдпрджрд┐ рдЖрдк useUnifiedTopology рдмрд┐рдирд╛ Mongoose 5.x рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ MongoDB рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЧрд╛рдЗрдб рдХреЛ рдкрдврд╝реЗрдВред

рдпрджрд┐ рдЖрдк useUnifiedTopology рд╕рд╛рде Mongoose 5.x рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдкрдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

weisjohn picture weisjohn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

efkan picture efkan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

wlingke picture wlingke  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

adamreisnz picture adamreisnz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jeremyml picture jeremyml  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ