@Nik_Set_7

Как восстановить connect с Client после разрыва соединения с postgres?

Когда у меня происходит разрыв соединения с postgres, я заново создаю клиента и заново создаю connect с ним
Но после коннекта я не могу делать запросы
Вопрос, в чём может быть дело (запросы у меня кладутся в очередь из промиссов)?

Единственная подсказка, которую я нашёл
https://github.com/brianc/node-postgres/issues/1558

const { Client: pgClient } = require('pg');

...restart() {
   this.db = new pgClient({
      host: ...,
      port: ...,
      database: ...,
      user: ...,
      password: ...
   });

   this.db.connect()
      .then(() => {
          ...
      })
      .catch((err) => {
          ...
      })  

    this.db.on('error', (err) => {
      this.db.query('SELECT NOW() as now')
         .then(() => {
             ...
         })
         .catch(e => {
             ...
            setTimeout(...restart.bind(this), 1000);
         })
    })
}

...methodQuery = function() {      
   return new Promise((resolve, reject) => {
      this.db.query('SELECT NOW() as now')
         .then(() => {
            resolve()
         })
         .catch((err) => {
            reject(err) 
         })
   }).then(() => {
      ...
   });
};
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы