是否有一种有效的方法可以使用JavaScript自动检查数据库中的日期是否已过期?[closed]

2cmtqfgy  于 2022-12-10  发布在  Java
关注(0)|答案(2)|浏览(115)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

10小时前就关门了。
Improve this question
我对Node JS的后端开发还很陌生。我目前正在为用户开发一个会员系统,每个用户都可以在有限的时间内获得会员资格。我选择的数据库是MongoDB,我正在使用mongoose与它交互(我不知道这是否重要)假设我根据用户的注册方式存储了他们成员资格的开始和结束日期,当一个成员结束时,什么是一个有效的检查方法?2你应该使用像setInterval这样的函数,每1-5秒检查一次,还是效率很低?3有什么好的方法可以做到这一点吗?
我的想法是使用setInterval函数,每2秒运行一次。但是,我担心这可能会非常低效,因为代码必须每2秒不断地从数据库中检索信息,并运行大量的验证。实际上是这样做的吗?还是有更好的方法?

ars1skjm

ars1skjm1#

我认为在这个问题上有很多模棱两可的地方和观点,因此投了反对票。
处理此问题的资源有效方式通常是:

  • 在数据库中存储成员资格过期时间
  • 设置一个方法/函数,对给定的过期用户执行一些操作(电子邮件、存档、删除等),我们将其称为“ExpireMe”函数。
  • 当用户请求操作(登录、访问服务等)时,检查它们是否有效,如果有效,则调用ExpireMe函数,并且不允许他们访问任何内容
  • 设置一个定期检查过期用户的服务,比如说,一天检查一次,一天检查两次,但千万不要每2秒检查一次。对于它发现的每个过期用户,对该用户运行ExpireMe函数。如果有多个服务器,请始终确保此服务仅在一个节点上运行。
knpiaxh1

knpiaxh12#

偶然发现了包node-cron,我认为在我的情况下似乎会有帮助。

相关问题