node.js - ejemplo - settimeout typescript
ConfiguraciĆ³n de un temporizador en Node.js (1)
Necesito ejecutar el código en Node.js cada 24 horas. Me encontré con una función llamada setTimeout
. A continuación se muestra mi fragmento de código
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);
Quiero ejecutar el código anterior una vez por hora y analizar los datos. Para mi referencia, había usado un segundo como el valor del temporizador. Cualquier idea de cómo proceder será de mucha ayuda.
Básicamente hay tres formas de ir.
-
setInterval()
La función setTimeout(f, n)
espera n milisegundos y llama a la función f
. La función setInterval(f, n)
llama a f
cada n
milisegundos.
setInterval(function(){
console.log(''test'');
}, 60 * 60 * 1000);
Esto imprime test
cada hora. Simplemente puedes lanzar tu código (excepto las declaraciones requeridas) en un setInterval()
. Sin embargo, eso me parece algo feo. Prefiero ir con
Tareas programadas La mayoría de los sistemas operativos tienen una forma de organizar las tareas. En Windows, esto se denomina " Tareas programadas " en la búsqueda de Linux para cron.
Use una biblioteca Como me di cuenta al responder, incluso se podría ver esto como un duplicado de esa pregunta.