注: 此项目为fork自博主RedisDelayQueue实现方式;
源码地址: RedisDelayQueue
一、引入pom
将项目中的 redis-delay-queue-core 模块打包 推送到自己公司的中央仓库,然后引入pom依赖
<dependency>
<artifactId>redis-delay-queue-core</artifactId>
<groupId>com.shirc</groupId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
二、将RedisDelayQueue被Spring管理
/**
* @Description 引入 redisdelayqueue
* @Author shirenchuang
* @Date 2019/8/6 5:58 PM
**/
@Component
public class DelayConfig {
@Autowired
private RedisTemplate redisTemplate;
@Bean
public RedisDelayQueueContext getRdctx(){
/**传入redisTemplate实例, 第二个参数为项目名 projectName ;不同项目需要设置不一样**/
RedisDelayQueueContext context = new RedisDelayQueueContext(redisTemplate,"dq_demo");
return context;
}
/**加了这个 可以在其他地方直接 @Autowire RedisDelayQueue 使用了**/
@Bean
public RedisDelayQueue getRedisOperation(RedisDelayQueueContext context){
return context.getRedisDelayQueue();
}
}
三、注册Topic任务
/**
* @Description 注册延迟队列 Demo
* @Author shirenchuang
* @Date 2019/8/8 10:07 AM
**/
@Service
public class DelayQueueDemoJob extends AbstractTopicRegister<DemoArgs> {
@Override
public String getTopic() {
return DelayJobTopicEnums.DEMO_TEST.getTopic();
}
@Override
public void execute(DemoArgs demoArgs