Nodejs node-schedule定时器

import { scheduleJob, RecurrenceRule, Range, cancelJob } from 'node-schedule';
import * as moment from 'moment';

const body = { //假设这是客户端传递的定时参数
    // date: 1573470956,
    date: moment().unix(),
};

const func = (item: number) => {
    const date = moment().unix(); //使用moment获取当前时间的时间戳
    if (!(item >= date)) { //如果设置时间小于当前时间,则为无效时间
        console.log('请正确设置时间!');
        return false;
    }

    //使用moment进行时间转换和拆分
    let format: string | string[] | number[] = moment.unix(date).format('YYYY-MM-DD-HH-mm-ss');
    format = format.split('-').map(v => Number(v)); //拆分时间
    const rule = new RecurrenceRule();
    rule.month = format[1] === 1 ? format[1] = 12 : format[1] - 1; //1-12月 JS中 10是11月
    rule.date = format[2];  //1-31号
    rule.hour = format[3]; //0-24小时
    rule.minute = format[4]; //0-59分
    rule.second = [new Range(0, 59)]; //0-59秒  new Range可以指定时间区间段来循环执行,如果只想执行一次,则指定0秒即可
    // rule.second = 0; 
    rule.year = format[0];
    const security = '183123-3435-32dfs-34e2w';

    const setTIme = scheduleJob(security, rule, v => {
        console.log(`执行 ${v}`);
    });

    setTIme;

    if (setTIme && setTIme.name) { //判断数据和标识是否存在
        console.log('第一个定时任务创建成功');
        // const result = cancelJob(security); //根据标识删除
        // if (result) {//销毁该任务
        //     console.log('第一个销毁成功');
        // } else {
        //     console.log('第一个销毁失败');
        // }
    } else {
        console.log('定时任务创建失败,请正确设置时间');
    }
};
func(body.date); //调用该函数



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值