3
0
mirror of https://github.com/reality/dbot.git synced 2024-12-30 14:42:51 +01:00
dbot/modules/timers
2013-04-13 15:21:07 +00:00
..
config.json Add links to existing docs in config.json files [#352] 2013-04-13 15:21:07 +00:00
README.md Fix docs for [#233] 2013-01-27 14:39:23 +00:00
timers.js fix #249 2013-01-29 00:53:37 +00:00

Timers

Timers for fun and profit.

Description

This is a utility module which allows other modules to more easily use timers to execute functionality, as well as providing simple cron-type functionality for timers.

API

addTimer(interval, callback, [firstDate])

Execute the given callback every time interval (in ms) passes.

The firstDate parameter is a Date object used to sync a timer to a given point in time, allowing for cron-type functionality. For example, if you wanted to call a given function every day at 00:00, you would do the following:

dbot.api.timers.addTimer(myCallback, 86400000, new Date([midnight tonight]));

This works like so:

  1. Create a one-time timeout to be executed at the given firstDate (00:00, as above).
  2. Upon this timeout, your callback is executed. Then addTimer is called again without the firstDate parameter, thus syncing a daily timer to be executed every day at 00:00.

The best place to create timers is in your modules onLoad function. Using this, you may essentially create persistent jobs to be run at regular intervals while your module is loaded..