定时任务使用场景和资源消耗问题

发布于 2022-09-12 04:47:42 字数 140 浏览 20 评论 0

场景:权限系统需要给人分配权限,必须要设定过期时间。时间长度最低是月级别。

方案一:定时任务,以小时为单位扫描。
方案二:查询数据库,每次做判断。

建议方案二,最小使用原则,避免不必要的资源浪费,而且及时性高。

大家觉得呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

明媚殇 2022-09-19 04:47:42

缓存redis过期自动删除

薔薇婲 2022-09-19 04:47:42

两个方案都不太建议。
个人建议:

1. 第一次登录,验证通过后,登录信息放在缓存中
2. 后期登录查询缓存即可验证登录身份
3. 时间的判断过期与否应该是缓存中来解决
4. 尽量少和数据库交互,当然这不是绝对的
孤独患者 2022-09-19 04:47:42

方案2没问题,但是说到底这两方案本身也没什么冲突,你用定时任务无非是修改某个有效标识,每次登录还是要查出来判断这个标识的,而方案2可以节省一点,分配权限的时候直接设置个过期时间,每次登录还是要查出来判断的,你用mysql也好,用redis也好,查询判断的逻辑怎么都要有,所以定时任务的确是不必要的,至于楼上两个都说要用缓存的,其实没必要,一来你这个时间大概率跟其他用户信息放在一起的,不查他也要查别的,顺手一起查了就得了,而利用redis的过期,redis删除过期数据的策略本身就是主动(定时任务)+被动(查询时判断)来做的,跟你这俩方案要做的是一样的事

美羊羊 2022-09-19 04:47:42

没啥数据,1,2 都可以,

2 实现更简单点

一般也没性能问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文