admin管理员组

文章数量:1794759

setInterval的启动与停止,以及node

setInterval的启动与停止,以及node

setInterval 简介

     setInterval()方法可按照指定的周期来调用函数或者计算表达式(以毫秒为单位)

setInterval 启动

语法 :setInterval(函数表达式,毫秒数);

如:间隔十秒打印一次 test

setInterval(function () { console.log('test') }, 1000) setInterval 停止

语法:clearInterval(interval)

由于 nodejs 是异步的,所以以下代码并不能打印 print,因为定时任务在启动时就结束了

//定时任务 function func() { console.log("print") } //启动,func不能使用括号 var interval = setInterval(func, 2000); //停止 clearInterval(interval); 简单实例

每隔 0.5s 打印一次,总共打印十次后,停止定时任务,通过setTimeout “睡眠” 5s 之后,再次启动定时任务,每隔 5s 打印一次

let count = 0 //定时任务 function func() { count++ console.log('第' + count + '条消') if (count === 10) { //停止定时任务 clearInterval(interval); setTimeout(() => { console.log("重新启动定时任务") //重新启动定时任务 interval = setInterval(func, 5000); }, 5000) } } //启动,func不能使用括号 let interval = setInterval(func, 500); setInterval 与 setTimeout 区别
  • setTimeout()方法只运行一次,也就是说当达到设定的时间后就出发运行指定的代码,运行完后就结束了

  • setInterval()是循环执行的,即每达到指定的时间间隔就执行相应的函数或者表达式,是真正的定时器。

node-schedule 简单使用

以上的两种方法,适合隔固定时间执行的任务,如果想要设定具体的时间执行的任务,比如 每天8:00执行、每年2月5号7点59执行,可以使用 node-schedule 来完成定时任务,简单说一下用法

schedule.scheduleJob('30 * * * * *',()=>{ console.log('scheduleCronstyle:' + new Date()); });

*代表通配符

* * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun) │ │ │ │ └───── month (1 - 12) │ │ │ └────────── day of month (1 - 31) │ │ └─────────────── hour (0 - 23) │ └──────────────────── minute (0 - 59) └───────────────────────── second (0 - 59, OPTIONAL)

6个占位符从左到右分别代表:秒、分、时、日、月、周几

node-schedule 详细用法参考如下博客 www.jianshu/p/8d303ff8fdeb.

本文标签: setIntervalnode