node-run-schedule
run functions at the right time with the right frequency or know why it didn't work out.
var run = ;var readable =
api
run = require('run-schedule')
export is the run function
var readable = run(schedule,[options,] step)
-
schedule - an array of "job" objects that define intervals. Each job has these keys..
- duration, the time in ms to wait after running this job. Required.
- id, the uniquie id of this step in the schedule. Optional.
- data, the job's data. This is convention more than requirement. I pass the whole job in as the first argument to your step function. if I add new optional keys to the schedule object I will only increment the patch version though it may break your program if you opt to not use data to contain your job's data.
-
options - optional options object.
- repeat, default false.
-
step(job,cb) - required. this is the function that processes each job when it's time.
- job, the job object
- cb, the callback. you must call this when you are done or your job will be reported as failed.
-
RETURN readable - this is an object stream of events related to the progress and result of jobs.
state:"start"job:job idstart:time in msend:time in ms error: if state is error this is the messagedata: the data from the step callback
- state - state may be start, running, error, or success. both error and success are "done" state but this breaks the handling code into 2 distinct paths so it should be more obvious that you are not handling error because you will want to handle "done".
- job - the id or position in the schedule array
- start - the wallclock time of the job start
- end - the wallclock time of the job end
- error - the error message if this job is state error.
- data - the data from the step callback function. when you are done and call
cb(false,"tacp")
this will be "taco"