node cron,如何在Node.js中使用node-cron进行任务调度

  node cron,

  没有一个开发者愿意把所有的时间都花在繁琐的任务上,比如系统维护和管理、日常数据库备份以及定期下载文件和邮件。你更喜欢专注于富有成效的工作,而不是跟踪这些烦人的琐事需要完成的时间。[推荐研究:《nodejs 教程》]

  这时候你就需要使用任务调度,它会帮你解决这类问题。

  任务调度使您能够安排任意代码(方法/功能)和命令在固定日期和时间、重复间隔或指定间隔后执行一次。在Linux操作系统中,任务调度通常由cron等实用服务在操作系统级处理。

  在Node.js应用中,可以使用node-cron这样的包来实现类似cron的功能。正如开发者所介绍的,node-cron是一个基于GNU crontab的node.js纯JavaScript的微任务调度器。

  Crontab是Linux系统的一个调度任务执行器。cron的操作由crontab文件驱动,crontab文件是一个包含cron守护进程指令的配置文件。node-cron模块允许我们使用完整的crontab语法在node中调度任务。

  Crontab语法如下:

  # ————————————————————第二(可选)

  # ——————————————分钟数(分钟,0-59)

  # 94

  # 9

  # ——————月(月,1-12)

  #

  #

  #

  # * * * * * *允许的cron值包括以下内容。

  字段秒059分钟059小时023一个月的第131天第112个月(或一月、二月.)一周中的第07天(或一月、二月.0或7是星期天)我们来看看。

  

使用 node-cron

  使用npm安装node-cron模块。

  $ NPM install-save node-cron

任务调度语法

   cron . schedule(cron expression:string,task: function,options:object)

选项

   scheduled:一个布尔值,用于设置所创建的任务是否已被调度(默认值为true)。时区:用于任务调度的时区。有关有效值,请参见moment-timezone。看看下面的例子。

  const cron=require(node-cron )

  cron.schedule(5 * * * * * ,()={

  Console.log(每5秒钟运行一个任务)

  })时间规范的位置2、3、4、5和6中的星号(*)类似于用于时间划分的文件glob或通配符;它们分别指定每分钟每小时每月的每一天每月和每周的每一天

  以下代码将在每天早上5:30运行。

  const cron=require(node-cron )

  cron.schedule(30 5 * * * ,()={

  Console.log(每天早上5:30运行任务)

  })

任务调度提示和技巧

  既然知道了基础,那就来点更有趣的吧。

  假设您想在每周五下午4点运行一个特定的任务。代码如下:

  const cron=require(node-cron )

  cron.schedule(0 16 * *星期五,()={

  Console.log(每周五下午4:00运行任务)

  })或者,您可能需要每季度运行一次数据库备份。Crontab语法没有一个月的最后一天选项,所以您可以使用下个月的第一天,如下所示。

  const cron=require(node-cron )

  cron.schedule(2 3 1 1,4,7,10 * ,()={

  Console.log(在每个季度的第一天运行任务)

  })下面显示的任务在上午10:05到下午6:05之间每小时运行五分钟。

  const cron=require(node-cron )

  cron.schedule(5 10-18 * * * ,()={

  Console.log(“在上午10点到下午6点之间每小时运行5分钟的任务”)

  })在某些情况下,您可能需要每两小时、三小时或四小时运行一次任务。您可以通过将小时数除以所需的时间间隔来实现这一点,例如,每四个小时*4,或者在上午12点到下午12点之间每三个小时运行0-12/3。

  分钟也可以用同样的方法划分。比如分钟位置的表达式是*/10,表示每10分钟运行一次任务

  以下任务在上午8点到下午5点58分之间每两小时运行五分钟。

  const cron=require(node-cron )

  cron.schedule(*/5 8-18/2 * * * ,()={

  Console.log(在上午8点到下午5点58分之间,每两个小时运行一次任务。)

  })

定时任务方法

  在我们结束之前,先来关注一下定时任务的三个关键方法。

  

开始任务

  当scheduled选项值设置为false时,即使cron表达式正在运行,任务也将被调度但无法启动。

  要启动这样的任务,需要调用start方法。

  const cron=require( node-cron )const task=cron . schedule( */5 8-18/2 * * * ,()={

  Console.log(在上午8点到下午5点58分之间,每两个小时运行一次任务。)

  })

  Task.start()

停止任务

  如果需要停止任务运行,可以使用stop方法将scheduled选项设置为false。除非重新启动,否则不会执行此任务。

  const cron=require( node-cron )const task=cron . schedule( */5 8-18/2 * * * ,()={

  Console.log(在上午8点到下午5点58分之间,每两个小时运行一次任务。)

  })

  Task.stop()

销毁任务

   destroy方法停止任务并完全销毁它。

  const cron=require( node-cron )const task=cron . schedule( */5 8-18/2 * * * ,()={

  Console.log(在上午8点到下午5点58分之间,每两个小时运行一次任务。)

  })

  上面的task.destroy()是node-cron的大部分功能。您应该使用这些函数来计划经常运行的任务。

  以上就是如何在Node.js中使用node-cron进行任务调度。更多详情请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: