Resilient Postgres listen client
$ npm install --save pg-ears
pg-ears exports a single function takes the same options as a new node-postgres
new Client(opts)
with a couple additions and returns an object containing the methods listen
and notify
- options (Object - required) Options for node-postgres connection plus the following:
- checkInterval (Number (ms) - optional - default: 30000 [30 sec.])
- maxAttempts (Number - optional - default: 60) Multiplier of checkInterval - number of attempts before giving up on reconnect
listen(channel, callback)
- channel (String - required)
- callback (Function - required) will be called every time a message is received with
(error, data)
as arguments
notify(channel, payload, callback)
- channel (Object - required)
- payload (Object | Array | String - required)
- callback (Object - optional) will be called with error if unable to send
const options = {
user: 'foo', //env var: PGUSER
database: 'my_db', //env var: PGDATABASE
password: 'secret', //env var: PGPASSWORD
host: 'localhost', // Server hosting the postgres database
port: 5432 //env var: PGPORT
}
const pgEars = require('pg-ears')(options)
pgEars.listen('mychannel', (err, data) => {
if (err) return console.error(err)
console.log(data)
})
pgEars.notify('mychannel', {key: 'value'}, (err) => {
if (err) console.error(err)
})
MIT © Andrew Carpenter