Подтвердить что ты не робот

Установка таймера в Node.js

Мне нужно запустить код в Node.js каждые 24 часа. Я наткнулся на функцию под названием 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);

Я хочу запустить вышеуказанный код один раз в час и проанализировать данные. Для моей справки я использовал одну секунду в качестве значения таймера. Любая идея, как действовать, будет очень полезна.

4b9b3361

Ответ 1

Есть в основном три способа пойти

  • setInterval()

Функция setTimeout(f, n) ждет n миллисекунд и вызывает функцию f. Функция setInterval(f, n) вызывает f каждые n миллисекунды.

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

Это печатает test каждый час. Вы можете просто выбросить свой код (кроме инструкций require) в setInterval(). Однако это кажется мне уродливым. Я бы предпочел:

  1. Запланированные задачи Большинство операционных систем имеют способ планирования задач. В Windows это называется "" Запланированные задачи "" в Linux искать cron.

  2. Используйте библиотеку Как я понял, отвечая, можно было бы увидеть это как дубликат этого вопроса.