Node.js事件队列优先级

时间:2012-02-23 22:18:39

标签: javascript node.js priority-queue eventqueue

我正在编写一个Node.js应用程序 - 长话短说 - 优先考虑不同的IO进程,具体取决于用户在网站上的活动/位置。到目前为止,一切都运行良好 - 重要的排队项目首先运行,而不太重要的事情运行较晚。

棘手的部分是,一次发生了大量的事情 - 用户登录,用户转到不同的页面,用户做一些需要立即处理的事情等等。在大多数情况下,我并不担心Node如何。 js管理事件队列,但在某些情况下我是。我想象的情况是我的事件队列中有很多东西(可能是因为一堆IO批次刚刚返回,正等待处理),并且用户在我的网站上执行了一项需要的操作立即IO请求,然后在该请求返回时立即处理。

我从来没有写过一个Node.js应用程序,它需要我真正担心缩放,所以我对它以正确的顺序处理我的事件的能力没有百分之百的信心。这是一个令人担心的愚蠢的事情吗? Node.js会如此快速地处理事情,以至于我永远不会真实地注意到阻塞,或者很可能随着我的扩展我将开始看到正在处理的重要事情的实质性延迟?

如果这是一个合理的担心,Node.js中是否有任何接口我可以手动优先处理我的事件队列?

更新

@Ricardo Tomasi在评论中提出了一个很好的观点,如果我的应用程序真的是CPU密集型的,它可能不属于Node.js.这让我意识到我的应用程序确实不是CPU密集型的,并且可能运行正常。

为了进一步向自己证明,我做了一点基准测试:

var a = new Date().getTime() + 1000; 
var b = new Date().getTime(); 
var c = 0; 
while(b < a) { 
    c++; 
    b = new Date().getTime();
} 
console.log(c + " loops in 1 second."); 

我只有不到200,000个循环,这充分证明了我没有什么可担心的。但是,我仍然有兴趣知道是否有任何方法可以手动管理Node.js事件队列。有谁知道吗?

0 个答案:

没有答案