rethinkdb-changefeed-reconnect
Simple helper module for having RethinkDB changefeed listeners automatically reconnect if they lose their connection (i.e., if the database server goes down or restarts).
Right now, there is a single (default) function exported: processChangeFeedWithAutoReconnect
.
Getting Started
-
Install the module in your project
$ npm install --save rethinkdb-changefeed-reconnect
How to Use
Basically, you need to implement 3 functions and configure your options:
getFeed()
: this should return a RethinkDB.changes()
query PromiseonFeedItem(item)
: this is the function that processes each new data itemonError(err)
: this function is where errors will be sent
The available options are:
changefeedName
: used for logging purposes so you can differentiate your different feedsattemptDelay
: how long (in milliseconds) to wait between reconnect attemptsmaxAttempts
: how many reconnect attempts to try before giving upsilent
: whether or not you want the logger to be silenced (default = false)logger
: must be an object with 4 functions:log
,info
,warn
, anderror
(default = global.console)
Example
const r = { r } { console} { console}
See also the provided example.
You can run it like so: node example
Then, after you run it, stop your RethinkDB server and watch what gets logged (assuming you passed silent: false
in your options).
Notes
This module was developed on top of rethinkdbdash.
Contributing
Read the instructions for contributing.
-
Clone the repository.
-
Run the setup tasks:
$ npm install $ npm test
License
See the LICENSE file.