开发者社区> 问答> 正文

社交类网站24小时封号怎么做的

一般社交类网站24小时那种封号怎么做的?如果是第一种按天封号,每天凌晨检查哪些帐号到期解封,这样难度低很多,但是粒度太粗了,会造成某个人的帐号被封24到48小时之内;如果是第二种,精确到秒那种,每个用户任务执行开一个调度器Quartz这种,需要额外开太多的线程,压力太大了。所以一般这种定期封号的任务应该怎么设计合适呢?

展开
收起
景凌凯 2020-04-22 17:58:54 1533 0
1 条回答
写回答
取消 提交回答
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!
    • 搞个过期时间就好了,我理解 可以使用懒删除,封号的时候,插入一个解封时间。真正使用的时候,对比解封时间和当前时间,不需要动态的维护 解封 这个状态,在需要检查用户状态的时候去查询就好了
    • 可以按照这个思路来设计:redis 维护删除的key就是两个步骤,一个是查询的时候去检查是否过期,还有一个是定时的清除真正过期的key。两者结合保证效率,减少复杂度
    • redis 使用hash表也可以。hset('website:forbid:account', account_id, release_timestamp) 然后检查的时候看看 hexists('website:forbid:account', account_id) 即可。单独写一个脚本定时删除字段
    • 封号存redis,封号时间则为过期时间,登录查redis拿到值则处于封号状态,拿不到就说明账号正常或已经解封
    • 惰性处理,每个账号在每次登陆的时候,应该都要经过一个账号异常检测的服务,统一检测账号包括是否被禁用在内的各种异常状态
    2020-04-22 17:59:45
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
微信广告引擎与播放节奏算法实践 立即下载
在业务量暴增中痛并快乐--数据交易平台的成长记事 立即下载
淘宝内容.2017 淘宝从追求效率的交易平台升级成为追求乐趣 立即下载