在Nodejs中为许多用户处理计时器
Handling timers for many users in Nodejs
我正在Node/Express中构建一个web应用程序,这样用户就可以设置计时器,以便执行或重复某个任务。我的问题是,如何在截止日期后触发事件,为许多用户设置计时器。我不想在客户端处理此问题,因为用户可以关闭浏览器。一个很好的例子是像pingdom.com这样的服务,它允许您设置计时器并每X分钟向服务器发送一次ping。如何实现这一点?我希望我不会因为问这个问题而得到很多否定,我也不会要求你们给我写代码。我只是想知道一个强有力的策略来解决这个问题。以下是我的想法:
-
将结束时间保存在数据库中,并每秒使用cron作业检查一次,看看时间是否到了(在我看来,这不是很好,因为查询和所有计算可能需要超过1秒)
-
以某种方式将变量分配给setInterval,并将其存储在全局列表中
如果每个客户端都有自己的计时器,那么你的web应用程序将有一个响应更灵敏的UI,并且你的后端可以更好地扩展。关闭浏览器不会有问题。
- 将
endtime
保存在服务器中的数据库中以解决特定问题 - 在客户端,从服务器检索
endtime
,并使用JavaScript创建一个计时器,提醒用户时间已过期 - 在服务器端,有一个额外的检查,如果答案是通过
endtime
提交的,则会拒绝答案,以防止客户端作弊
相关文章:
- 在Nodejs中为许多用户处理计时器
- 在Kinetic.js中通过多层处理事件
- 有没有一种安全的方法可以将 React.js 与 Python Flask 后端用于多用户、受密码保护的站点
- 一个 ajax 处理程序或多个处理程序
- 在多用户中使用本地存储
- jQuery.toggle - 在交替单击时执行两个或多个处理程序
- j查询多按键处理
- 使用个人信息创建多用户登录系统
- PHP/AAJAX多用户应用程序-数据正在以某种方式丢失
- asp.net多用户控制客户端id问题
- 一些比base64更好的东西来编码那些没有'不要占用太多的处理能力
- 使网页实时和多用户的最佳方式
- fabric.js-多用户画布
- 如何使用不同的选择器 ID 多次处理事件
- 有没有什么解决方案可以让我用Node.js将这么多字符处理成一个字符串
- NodeJS如何在多用户环境中处理基元和对象
- 使用node.js + socket.io处理多用户数据
- 在加载更多用户之前,滚动未到达页面末尾
- 谷歌地图——避免在文档上使用多个处理程序
- 多用户HTML5画布素描与JS