0.0.3 • Published 2 years ago

nv-remote-cron v0.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

nv-remote-cron

  • cron task using redis

install

  • npm install nv-remote-cron

usage

  const RCron = require("nv-remote-cron")
  var cron = new RCron()
  await cron.init()

example

    /*
    > cron
    Cron(0) [
      password: 'redis',
      db: 15,
      port: 6379,
      host: '127.0.0.1',
      family: 4,
      redis: RD {
        family: 4,
        host: '127.0.0.1',
        port: 6379,
        password: 'redis',
        db: 15,
        one_time_task_noti_handler: [AsyncFunction (anonymous)]
      },
      standard_clock: Auto [2022-05-12 18:18:30.630 +0800] {},
      freq: 1000
    ]
    >
    > cron.event_clock_
    Manual [2022-05-12 18:18:57.764 +0800] {}
    > cron.standard_clock
    Auto [2022-05-12 18:19:19.961 +0800] {}
    >

    */

    /*
    > cron.add_xsec_tsk("every_10sec_tsk0",10,(D,tsk_self)=>{console.log(D)})
    <ref *1> _Task {
      name: 'every_10sec_tsk0',
      idx: 0,
      cond_func: [Function: cond_func],
      exec_func: [Function (anonymous)],
      cron: Cron(1) [
        [Circular *1],
        password: 'redis',
        db: 15,
        port: 6379,
        host: '127.0.0.1',
        family: 4,
        redis: RD {
          family: 4,
          host: '127.0.0.1',
          port: 6379,
          password: 'redis',
          db: 15,
          one_time_task_noti_handler: [AsyncFunction (anonymous)]
        },
        standard_clock: Auto [2022-05-12 18:21:17.048 +0800] {},
        freq: 1000
      ],
      ready_mts: 1652350874764,
      last_exec_date: null,
    }
    >

    */


    //every 10 seconds
    var tsk = cron.add_xsec_tsk("every_10sec_tsk0",10,(D,tsk_self)=>{console.log(D)});

    /*
    >
    > {
      y: 2022,
      m: 5,
      d: 12,
      h: 18,
      min: 32,
      s: 46,
      ms: 266,
      ts: 1652351566.266,
      mts: 1652351566266,
      zone: '+0800',
      soffset: 28800,
      msoffset: 28800000,
      utc_wd: 4,
      lcl_wd: 5
    }

    > {
      y: 2022,
      m: 5,
      d: 12,
      h: 18,
      min: 32,
      s: 56,
      ms: 266,
      ts: 1652351576.266,
      mts: 1652351576266,
      zone: '+0800',
      soffset: 28800,
      msoffset: 28800000,
      utc_wd: 4,
      lcl_wd: 5
    }

    > {
      y: 2022,
      m: 5,
      d: 12,
      h: 18,
      min: 33,
      s: 6,
      ms: 266,
      ts: 1652351586.266,
      mts: 1652351586266,
      zone: '+0800',
      soffset: 28800,
      msoffset: 28800000,
      utc_wd: 4,
      lcl_wd: 5
    }


    */

    /*
    > cron
    <ref *1> Cron(1) [
      _Task {
        name: 'every_10sec_tsk0',
        idx: 0,
        cond_func: [Function: cond_func],
        exec_func: [Function (anonymous)],
        cron: [Circular *1],
        ready_mts: 1652351638622,
        last_exec_date: null
      },
      password: 'redis',
      db: 15,
      port: 6379,
      host: '127.0.0.1',
      family: 4,
      redis: RD {
        family: 4,
        host: '127.0.0.1',
        port: 6379,
        password: 'redis',
        db: 15,
        one_time_task_noti_handler: [AsyncFunction (anonymous)]
      },
      standard_clock: Auto [2022-05-12 18:34:07.391 +0800] {},
      freq: 1000
    ]

    */
    tsk.erase()

    /*
    > cron
    Cron(0) [
      password: 'redis',
      db: 15,
      port: 6379,
      host: '127.0.0.1',
      family: 4,
      redis: RD {
        family: 4,
        host: '127.0.0.1',
        port: 6379,
        password: 'redis',
        db: 15,
        one_time_task_noti_handler: [AsyncFunction (anonymous)]
      },
      standard_clock: Auto [2022-05-12 18:34:23.027 +0800] {},
      freq: 1000
    ]
    >

    */



    var tsk = cron.add_tsk(
        "run at roughly 7 secs between 18:00 to 19:00",
        (D,tsk_self) =>  (D.s % 7 === 0) && (D.h>=18 && D.h < 19),
        (D,tsk_self)=> {
            console.log(new Date)
        }
    );


    /*
    > 2022-05-12T10:41:59.636Z
    2022-05-12T10:42:03.649Z
    2022-05-12T10:42:10.675Z
    2022-05-12T10:42:17.695Z
    2022-05-12T10:42:24.715Z
    2022-05-12T10:42:31.737Z
    2022-05-12T10:42:38.761Z

    */

METHODS

cfg

  cron.db                    cron.family                cron.freq                  cron.host                  cron.length                cron.password              cron.port                  cron.redis

clock

 cron.standard_clock
 cron.event_clock_
 cron.mts_
 cron.adjust_clock

    async cron.init()
    async cron.stop()
    cron.tsk(name)
                        

   cron.add_tsk


   cron.add_friday_tsk        cron.add_mANDd_tsk         cron.add_monday_tsk        cron.add_msANDds_tsk       cron.add_nst_day_tsk       cron.add_nst_month_tsk     cron.add_saturday_tsk      cron.add_sunday_tsk
   cron.add_thursday_tsk      cron.add_tsk               cron.add_tuesday_tsk       cron.add_wd_tsk            cron.add_wensday_tsk       cron.add_workday_tsk       cron.add_xday_tsk          cron.add_xhour_tsk
   cron.add_xmin_tsk          cron.add_xsec_tsk          cron.add_xweak_tsk                

LICENSE

  • ISC