如何在javascript中处理(很多)计时器

时间:2014-02-05 09:08:00

标签: javascript node.js timer

我的情况如下:人们连接到我的服务器,我的服务器确实存储了有关连接的用户的一些信息。对于每个连接的用户,我必须在不同的时间处理3个事件。所以我想到如何处理这是一个好方法。我有两种不同的方法。

  • 为每个用户事件创建一个计时器,就是这样。然后我的回调将在时间
  • 时被触发
  • 存储事件应该触发的时间戳,并每秒检查一次这些时间戳,并检查是否需要调用某些内容

哪种方式做得更好?有一般方法如何处理这样的场景?

1 个答案:

答案 0 :(得分:3)

有没有理由认为节点不能很好地处理定时器?绝对你的第一种方法应该是#1 - 为每个事件使用一个计时器。

如果由于某种原因无法使用,那么请使用一堆计时器。堆的根始终是最近的到期计时器,当它到期时,你通过堆,处理所有过期的计时器(可能超过1),然后设置一个计时器到下一个到期时间。