当前位置: 首页 > 工具软件 > syj-ratelimit > 使用案例 >

conductor 3.13.2 的InProgressLimit及RateLimit实现分析

李俭
2023-12-01

RateLimit只在redis模式下支持,以Redis为例分析InProgressLimit及RateLimit实现。

InProgressLimit

存放在TASKS_IN_PROGRESS_STATUS中,核心包括

  • 修改task时候根据状态使用 jedisProxy.sadd(nsKey(TASKS_IN_PROGRESS_STATUS, task.getTaskDefName()), task.getTaskId()); 或者 jedisProxy.srem(nsKey(TASKS_IN_PROGRESS_STATUS, task.getTaskDefName()), task.getTaskId()); 来修改数据
  • 判断时候直接使用jedisProxy.scard(inProgressKey)

核心代码都在类RedisExecutionDAO 中,关键代码如下:

@Override
    public void updateTask(Task task) {
   
        Optional
 类似资料: