zoukankan      html  css  js  c++  java
  • redis实现按次结算的服务控制

    业务场景

    人工智能领域的语义识别与自动对话将是未来服务业机器人应答呼叫体系中的重要技术,百度自研用户评价语义识别服务,免费开放给企业试用,同时训练百度自己的模型,现对试用用户的使用行为进行限速,限制每个用户每分钟最多发起10次调用

    解决方案

    • 设计计数器,记录调用次数,用于控制业务执行次数。以用户id为key,使用次数作为value

    • 在调用前获取次数,判断是否超过限定次数

      • 不超过次数的情况下,每次调用计数+1
      • 业务调用失败,计数-1
    • 为计数器设置生命周期为指定周期,例如一秒/分钟,自动清空周期内使用次数

    解决方案改良(一种思路)

    • 取消最大值的判定,利用incr操作超过最大值抛出异常的形式替代每次判断是否大于最大值

    • 判断是否为nil

      • 如果是,设置为Max-次数
      • 如果不是,计数+1
      • 业务调用失败,计数-1
    • 遇到异常即+操作超过上限,视为使用达到上限

  • 相关阅读:
    AcWing 199. 余数之和
    AcWing 295. 清理班次
    AcWing 294. 计算重复
    Acwing 393. 雇佣收银员
    AcWing 362. 区间
    AcWing 361. 观光奶牛
    CSP-S 2019 Emiya 家今天的饭
    CSP-S 2019游记
    AcWing 345. 牛站 Cow Relays
    java 环境配置
  • 原文地址:https://www.cnblogs.com/ifme/p/12315765.html
Copyright © 2011-2022 走看看