首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Node.js中设置计时器

在Node.js中设置计时器
EN

Stack Overflow用户
提问于 2013-02-14 13:51:41
回答 1查看 60K关注 0票数 22

我需要每24小时运行一次Node.js代码。我遇到了一个名为setTimeout的函数。下面是我的代码片段

代码语言:javascript
复制
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);

我想每小时运行一次上面的代码并解析数据。作为参考,我使用了一秒作为计时器的值。任何如何继续的想法都会很有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-14 14:33:49

基本上有三条路可走。

  1. setInterval()

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

代码语言:javascript
复制
setInterval(function(){
  console.log('test');
}, 60 * 60 * 1000);      

此命令每小时打印一次test。您可以直接将代码(除了require语句)放入setInterval()中。然而,在我看来,这似乎有点丑陋。我更喜欢这样:

  1. 调度任务大多数操作系统都有调度任务的方法。在Windows上这叫做"Scheduled Tasks“在Linux上查找cron.
  2. Use a libary正如我在回答时意识到的,人们甚至可以把它看作那个问题的副本。
票数 46
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14868590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档