在Nodejs中处理许多用户的计时器

时间:2016-05-15 04:11:00

标签: javascript node.js timer cron

我在Node / Express中构建一个Web应用程序,以便用户可以设置一个计时器,以便执行或重复某个任务。我的问题是如何在截止日期之后触发事件为许多用户设置计时器。我希望在客户端处理此问题,因为用户可以关闭浏览器。一个很好的例子是pingdom.com等服务,它允许您设置计时器并每隔X分钟向您的服务器发送一次ping。如何实现这一目标? 我希望我不会因为这个问题而得到很多否定,而且我也没有要求你们给我写代码。我只是想知道解决这个问题的强大策略。 这是我的想法:

  1. 将结束时间保存在db中并每秒使用一次cron作业检查以查看时间是否已启动(由于查询和所有计算可能需要1秒以上,因此我认为这不是很好)

  2. 以某种方式将变量分配给setInterval并将它们存储在全局列表中

1 个答案:

答案 0 :(得分:0)

如果每个客户端都拥有自己的计时器,那么您的网络应用将具有更具响应性的用户界面,并且您的后端可以更好地扩展。关闭浏览器不会有问题。

  • endtime保留在服务器的数据库中以查找特定问题。
  • 在客户端,从服务器检索endtime,并使用JavaScript创建一个计时器,提醒用户他们的时间已过期。
  • 在服务器端,如果答案是在endtime之后提交的话,请进行额外的检查以拒绝答案,以防止客户作弊。