Skip to content

xiao-ren-wu/redis-delay-queue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

redis-delay-queue

Redis延时队列

  1. 引入依赖
        <dependency>
           <groupId>org.ywb</groupId>
           <artifactId>redis-delay-queue</artifactId>
           <version>0.0.1-SNAPSHOT</version>
        </dependency>
  1. 投递消息

    引入RedisDelayQueue

    @Resource
    private RedisDelayQueue redisDelayQueue;
    
    void test(){
    	 redisDelayQueue.delay("topicName",task,20L,timeUnit);
    }

api 介绍

delay有很多重载方法,我们需要明确下面几个概念

  1. 投递的topic
  2. 具体投递的任务 Obj
  3. 希望多久后获得到这个任务
  4. 时间单位
  1. 消费消息

    实现HandlerTask接口,并标注消费的topic

    handler方法入参是你当时投递到延迟队列中的json串,需要你自己手动反序列化一下

@DelayQueueListener(listen = "topic")
public class TaskHandler implements HandlerTask {
    @Override
    public void handler(String task) {
        // todo
    }
}

[注] 注解中listener属性支持Spring SPEL表达式

since 1.0.1

新增

  1. 期望获取时间参数,可以通过直接设置延迟任务获取时间
  2. 增加Supplier,Function函数式接口用于制定延迟任务

Releases

No releases published

Packages

No packages published

Languages