Как добавить непрерывно работающий код в клиент nodejs postgresql? - PullRequest
0 голосов
/ 09 июля 2020

Я застрял на проблеме подключения некоторых logi c к клиенту nodejs pg, основной logi c состоит из двух частей, первая из которых подключается к серверу postgres и получает некоторое уведомление, это выглядит следующим образом:

var rules = {}                // a rules object we are monitoring...
const pg_cli = new Client({
    ....
})

pg_cli.connect()
pg_cli.query('LISTEN zone_rules') // listen to the zone_rules channel

pg_cli.on('notification', msg => {
   rules = msg.payload
})

Эта часть проста и запускается без каких-либо проблем, теперь я пытаюсь реализовать, чтобы другая функция продолжала отслеживать правила, и когда объект получен и помещенный в правила, функция начинает накапливать время, в течение которого объект остается в правилах (которое может быть удалено с другим уведомлением с сервера pg), и функция мониторинга отправит предупреждение на другой сервер, если продолжительность объекта превышает определенное время . Я попытался написать код в следующем стиле:

function check() {
  // watch and time accumulating code...
  process.nextTick(check)
}

check()

Но я обнаружил код onevent получения уведомления, и у него не было возможности запустить! Кто-нибудь знает о моей проблеме. Или надо по другому сделать?

Спасибо !!!

1 Ответ

0 голосов
/ 09 июля 2020

Ну, я обнаружил, что замените nextTick на setImmediate, чтобы решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...