Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

为了简化项目中用到延迟场景的使用。 使用者不再需要关心延迟消息的实现,只需要关注自己业务实现。 使用redisson实现延迟队列,开箱即用

NotificationsYou must be signed in to change notification settings

modongning/delay-queue-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

业务中经常有一些场景是要延迟执行的,所以需要有延迟的消息触发到程序,然后程序自动执行。

这个项目是为了简化项目中用到延迟场景的使用。

使用者不再需要关心延迟消息的实现和触达,只需要关注自己业务实现。

  • redisson实现延迟队列 (已实现✅)

  • rocketmq实现延迟队列 (未实现)

img.png

使用方式

所有实现了DelayQueueExecutor的实现类都会在服务启动后,会添加到DelayQueueExecutorFactory中进行管理。

再由执行器启动器DelayQueueExecutorRunner统一执行。

0. 添加redis配置

spring:redis:cluster:nodes:${redis.nodes}database:1timeout:30000password:${redis.password}enableTransactionSupport:false

1. 继承 DelayQueueExecutor 基类实现延迟队列执行器

/** * 该执行器实现类会在服务启动后,会添加到`DelayQueueExecutorFactory`中进行管理。 * * 不需要在单独调用,只需要实现execute()的业务即可 */@ComponentpublicclassPkFinishDelayQueueExecutorimplementsDelayQueueExecutor<PkFinishDelayMessage> {//注入延迟队列持有者@ResourceprivateDelayQueueHolderredisDelayQueueHolder;@OverridepublicStringqueueName() {return"PkFinishQueue";    }@Overridepublicvoidexecute(PkFinishDelayMessagedelayMessage) {//TODO 处理业务逻辑LongpkId =delayMessage.getPkId();    }@OverridepublicPkFinishDelayMessagetask()throwsInterruptedException {returnredisDelayQueueHolder.task(this.queueName());    }}

2. 往延迟队列里面添加延迟任务

publicclassTest {@AutowiredprivateDelayQueueHolderredisDelayQueueHolder;@TestpublicvoidtestAddJob() {PkFinishDelayMessagemessage =newPkFinishDelayMessage();//30分钟后,会通过PKFinishDelayQueueExecutor.execute()执行redisDelayQueueHolder.addJob(message,30 *60,TimeUnit.SECONDS,"PK_TIMEOUT");    }}

About

为了简化项目中用到延迟场景的使用。 使用者不再需要关心延迟消息的实现,只需要关注自己业务实现。 使用redisson实现延迟队列,开箱即用

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2026 Movatter.jp