Articles of setinterval

间隔发送消息到websockets

我试图build立一个“查看最近的search”function到我的网站。 本质上,我想每5秒钟在网站上显示一个新的最近的search。 做这个的最好方式是什么? 我正在考虑让每个页面通过socket.io连接到我的服务器,然后每隔5秒向所有套接字广播一个关于新search的消息。 在客户端,当从套接字服务器接收到消息时,我将使用一些客户端JavaScript来更新网页的最近search部分。 是这样做的最好方法吗? 如果是这样,我该如何执行? 我正在使用node.js / express。

ExpressJS:如何知道请求何时完成?

在NodeJS之上设置的ExpressJS中,我有一些这样的代码: app.get('/keys/readresults/:keyname', basic_auth, function(req,res){ res.writeHead(200, {'content-type': 'text/json'}); setInterval( go_to_database_and_get('stuff', function (database_replies) { res.write(database_replies) }) ,5000); }); 为了简单起见,代码就是这样写的(如果有人想要真正的代码,我很乐意将它发布到一些pastebin中)。 当我curl -u username:password http://localhost:4000/keys/readresults/key正好是我想要发生的事情时会发生什么:我得到一个200状态头,它检查数据库中的任何结果,我想要写然后等待5秒钟,然后在数据库中search新的结果,并再次写入响应,等等,每隔5秒钟。 问题是,当我退出curl,循环不断进行。 一旦请求 结束,我如何告诉express或nodejs它应该结束该循环 (我猜是 clearInterval) ?

setInterval返回Timer对象而不是intervalId

我想通过使用我打算存储在本地文件中的intervalId来清除间隔。 我的印象是分配setInterval返回它的intervalId但我似乎正在得到[object Timer] 。 var fs = require("fs"); var id = setInterval(function(){ console.log("tick"); }, 1000); console.log(id); var stream = fs.createWriteStream("id"); stream.once('open', function(fd) { stream.write(id); }); 我正在使用节点v4.9

在Node.js中保持setTimeout和setInterval重新启动

我设置了相当多的服务器端超时setTimeout和setInterval每个连接的用户可以持续10-30秒。 如果Node.js实例在其中一个超时期间重新启动,显然它们在重新启动时会被清除,这可能会给这些用户带来一些问题。 我将如何去坚持这些超时,还是有任何模块已经帮助了这个?

node.js:setInterval()跳过调用

对于即将开始使用node.js的项目,我需要定期执行各种内务处理任务。 特别是每毫秒一些任务,其他每20毫秒(每秒50次),还有其他每秒。 所以我想过使用setInterval(),结果很有趣:很多函数调用被跳过了。 我使用的基准如下: var counter = 0; var seconds = 0; var short = 1; setInterval(function() { counter ++; }, short); setInterval(function() { seconds ++; log('Seconds: ' + seconds + ', counter: ' + counter + ', missed ' + (seconds * 1000 / short – counter)); }, 1000); 有一个很长的计时器,一秒钟和一个可以使用可变short调整,在这种情况下是1毫秒。 我们每秒都会打印出短周期中预期报价点的数量与短计数器更新的实际次数之间的差值。 下面是当短计时器为1毫秒时的行为: 2012-09-14T23:03:32.780Z Seconds: […]

在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 () { […]

在setinterval中使用长时间间隔时,Node.js会崩溃

function createSasTokenTimer() { console.log("Hello"); } setInterval(createSasTokenTimer, 3000000); 我运行这个代码,50分钟后,我得到以下错误: Hello timers.js:265 callback.apply(this, args); ^ TypeError: Cannot read property 'apply' of undefined at wrapper [as _onTimeout] (timers.js:265:13) at Timer.listOnTimeout (timers.js:110:15) 间隔时间较短(例如2000000 ),一切正常。 这是Node.js中的错误吗? 更新: 操作系统: Windows ,Node.js版本: 0.12.4 当我只运行上面的代码时,它可以正常工作,但是当它在我的应用程序中时,它会中断,我不能指出我的代码中的哪一部分会破坏它,因为它非常冗长,没有看起来“可疑”。 无论如何,当间隔时间较短,它的工作,因为我写了。