rocket.chat.mqtt
Version:
It's a MQTT Server, using redis to scale horizontally.
62 lines (41 loc) • 1.38 kB
Markdown
reschedulable setTimeout for you node needs. This library is built for
building a keep alive functionality across a large numbers of
clients/sockets.
Rescheduling a 10000 functions 20 times with an interval of 50ms (see
`bench.js`), with 100 repetitions:
* `benchSetTimeout*100`: 51867ms
* `benchRetimer*100`: 34237ms
```
npm install retimer --save
```
```js
var retimer = require('retimer')
var timer = retimer(function () {
throw new Error('this should never get called!')
}, 20)
setTimeout(function () {
timer.reschedule(50)
setTimeout(function () {
timer.clear()
}, 10)
}, 10)
```
Exactly like your beloved `setTimeout`.
Returns a `Retimer object`
Reschedule the timer, if the specified timeout comes __after__ the
original timeout.
Returns true if successful, false otherwise
Clear the timer, like your beloved `clearTimeout`.
Timers are stored in a Linked List in node.js, if you create a lot of
timers this Linked List becomes massive which makes __removing a timer an expensive operation__.
Retimer let the old timer run at its time, and schedule a new one accordingly.
MIT