定时任务使用场景和资源消耗问题
场景:权限系统需要给人分配权限,必须要设定过期时间。时间长度最低是月级别。
方案一:定时任务,以小时为单位扫描。
方案二:查询数据库,每次做判断。
建议方案二,最小使用原则,避免不必要的资源浪费,而且及时性高。
大家觉得呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
场景:权限系统需要给人分配权限,必须要设定过期时间。时间长度最低是月级别。
方案一:定时任务,以小时为单位扫描。
方案二:查询数据库,每次做判断。
建议方案二,最小使用原则,避免不必要的资源浪费,而且及时性高。
大家觉得呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
缓存redis过期自动删除
两个方案都不太建议。
个人建议:
方案2没问题,但是说到底这两方案本身也没什么冲突,你用定时任务无非是修改某个有效标识,每次登录还是要查出来判断这个标识的,而方案2可以节省一点,分配权限的时候直接设置个过期时间,每次登录还是要查出来判断的,你用mysql也好,用redis也好,查询判断的逻辑怎么都要有,所以定时任务的确是不必要的,至于楼上两个都说要用缓存的,其实没必要,一来你这个时间大概率跟其他用户信息放在一起的,不查他也要查别的,顺手一起查了就得了,而利用redis的过期,redis删除过期数据的策略本身就是主动(定时任务)+被动(查询时判断)来做的,跟你这俩方案要做的是一样的事
没啥数据,1,2 都可以,
2 实现更简单点
一般也没性能问题