前言
如标题所示,本文要讲的就是定时任务,定时任务在某些场景下是必不可少的存在。比如每天的某个时刻爬取一下特定的数据,或者后台定时地进行计算( 每天零点更新下统计数据啊,或者涉及到个人资产的计算下利息啊什么的 ),又或者定时备份下数据库,当然还有更多情景。
定时与延时
定时是一个绝对的概念,指的是一个特定的时间,比如 2017 年 05 月 30 日 22 : 33 : 09,或者每天早上 8 点,又或者每个月的 1 号到 15 号的 9 点 到 10 点钟这个时间段每隔 5 分钟的时间点。
延时是相对而言的,比如 setTimeout、setInterval、setImmediate 这些其实是在某个特定的事件执行完之后设定一个延时以执行下一个任务,并不是指定的现实中的具体的时间。
当然这里我自己区分了下,为的就是不要混淆了不同的使用场景。
cron
提到定时任务,不得不说说 cron ,百度百科上说的很清楚,Linux 系统的内置服务,定时执行工具。
定时格式 * * * * * :这五个星号具体的含义下图说的很清楚了。
这里之所以要提 cron ,主要是因为大量的实现定时任务的第三方库都形似与此( 注意是形似 ),其实就是这几个星号。
node-schedule
在 node 中实现定时任务的比较出名的有以下几个:later、agenda、node-cron、node-schedule ,当然我选取了 node-schedule 做进一步的实战说明。
node-schedule 定时格式:
眼熟吗,现在知道为什么我在前面提了 cron 吧。除了第一个秒是可选的之外,其余完全相同。
示例:
常见的都在图上了,也不多说了,基本能满足使用场景了。
本文分享自 Node Python Go全栈开发 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!