在Node.js中设置一个计时器

我需要每24小时在Node.js中运行代码。 我遇到了一个叫setTimeout的函数。 以下是我的代码片段

 var et = require('elementtree'); var XML = et.XML; var ElementTree = et.ElementTree; var element = et.Element; var subElement = et.SubElement; var data='<?xml version="1.0"?><entries><entry><TenantId>12345</TenantId><ServiceName>MaaS</ServiceName><ResourceID>enAAAA</ResourceID><UsageID>550e8400-e29b-41d4-a716-446655440000</UsageID><EventType>create</EventType><category term="monitoring.entity.create"/><DataCenter>global</DataCenter><Region>global</Region><StartTime>Sun Apr 29 2012 16:37:32 GMT-0700 (PDT)</StartTime><ResourceName>entity</ResourceName></entry><entry><TenantId>44445</TenantId><ServiceName>MaaS</ServiceName><ResourceID>enAAAA</ResourceID><UsageID>550e8400-e29b-41d4-a716-fffffffff000</UsageID><EventType>update</EventType><category term="monitoring.entity.update"/><DataCenter>global</DataCenter><Region>global</Region><StartTime>Sun Apr 29 2012 16:40:32 GMT-0700 (PDT)</StartTime><ResourceName>entity</ResourceName></entry></entries>' etree = et.parse(data); var t = process.hrtime(); // [ 1800216, 927643717 ] setTimeout(function () { t = process.hrtime(t); // [ 1, 6962306 ] console.log(etree.findall('./entry/TenantId').length); // 2 console.log('benchmark took %d seconds and %d nanoseconds', t[0], t[1]); //benchmark took 1 seconds and 6962306 nanoseconds },1000); 

我想每小时运行一次上述代码并parsing数据。 为了我的参考,我用了一秒作为定时器的值。 任何想法如何进行将是非常有益的。

基本上有三种方法可以去

  1. setInterval()

setTimeout(f, n)函数等待n毫秒并调用函数fsetInterval(f, n)函数每n毫秒调用一次f

 setInterval(function(){ console.log('test'); }, 60 * 60 * 1000); 

这每小时打印test 。 你可以把你的代码(除了require语句)放到setInterval() 。 但是,这对我来说似乎很丑。 我宁愿去与:

  1. 计划任务大多数操作系统都有调度任务的方法。 在Windows上,这在Linux上称为“ 计划任务 ”寻找cron。

  2. 使用一个库文件当我在回答的时候意识到,甚至可以把这看作是这个问题的重复。