0.0.8 • Published 7 years ago

job-scheduler v0.0.8

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

About

job-scheduler is a job manager for nodejs, providing job creation, rescheduling, cancel, etc.

Installation

npm install job-scheduler

Quickstart

const jobScheduler = require('job-scheduler');

jobScheduler.scheduleJob(function() {
  console.log('hello from job');      // log will be printed in 3000ms
}, 3000);

API

scheduleJob(callback, time, options)

Schedule a job, happening in timems from now on.

  • callback - (Function, Require) What to be done in the job.
  • time - (Number, Optional, Default zero) A millisecond based time point, when will the job happen.
  • options - (Object, Optional, Default {}) Job options.

    • loop - (Boolean, Optional, Default false) Whether it's a loop job.
      • true, the job will happen every timems(setInterval-like).
      • false, the job will happen only once in timems from now on(setTimeout-like).
    • exclusive - (Boolean, Optional, Default false) If it's a loop job and exclusive is true. Job instances will happen one one by one, no overlap. The interval between job instances is timems.
    • argArray - (Array, Optional, Default undefined) The argument array of callback;

You can also put any other properties in the options for searching jobs, described in subsequent APIs.

jobScheduler.scheduleJob(function(args) {
  console.log('job args', args);      //job args [ 1, 2, 3 ]
}, 3000, {loop: true, exclusive: true, argArray: [1, 2, 3]});

reschedule(options, time)

Reschedule a job(s).

  • options - (Object, Optional, Default {}) Which job(s) will be rescheduled. Only the job(s) whose options is equal to or contains the given options, will be rescheduled. Default options means rescheduling all jobs.
  • time - (Number, Optional, Default zero) Reschedule time.
jobScheduler.scheduleJob(function() {
  console.log('job happen',);      // job will not happen in 3000ms.
}, 3000, {jobName: 'MyJob'});

// sleep 1 second

jobScheduler.reschedule({jobName: 'MyJob'}, 5000);  // job will happen in 5000ms from now on.

cancelJob(options)

Cancel a job(s).

  • options - (Object, Optional, Default {}) Which job(s) will be canceled, like reschedule.
jobScheduler.scheduleJob(function() {
  console.log('job happen',);      // job will not happen.
}, 3000, {jobName: 'MyJob'});

// sleep 1 second

jobScheduler.cancelJob({jobName: 'MyJob'});

cancelAll()

Cancel all jobs.

jobScheduler.scheduleJob(function() {
  console.log('job1 happen',);      // job1 will not happen.
}, 3000, {jobName: 'MyJob1'});

jobScheduler.scheduleJob(function() {
  console.log('job2 happen',);      // job2 will not happen.
}, 3000, {jobName: 'MyJob2'});

// sleep 1 second

jobScheduler.cancelAll();

doNow(options, remove)

Let a job(s) happen right now.

  • options - (Object, Optional, Default {}) Which job(s) will be done now, like reschedule.
  • remove - (Boolean, Optional, Default false) Whether to remove the job(s) after do it now.
    • true - Remove it after do it now.
    • false - Keep it after do it now, it will happen again when its scheduled time is coming.
jobScheduler.scheduleJob(function() {
  console.log('job happen',);      // job will happen in 1000ms instead of 3000ms.
}, 3000, {jobName: 'MyJob'});

// sleep 1 second

jobScheduler.doNow({jobName: 'MyJob'}, true);

Build the src

npm run build

The build result will be in dist folder.

0.0.8

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago