Skip to content

othorizon/AsyncRetryable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AsyncRetryable 异步可持久化的任务重试工具

org.springframework.retry.annotation.Retryable的功能相似,当方法抛出指定的异常后会进行重试。
最大的区别在于,该工具会将失败的任务进行持久化(比如存储到mysql数据库中),当系统重启后任务依然可以继续执行。

特性

重试操作是异步执行的

这点非常重要,也就是当方法失败后,不会抛出异常而是会继续向后执行,重试操作会在任务线程中被触发。
目前任务线程设计为单线程的,任务会被循环串行执行,这是因为该工具被设计为去处理一些简单的低耗时的任务。

任务是持久化存储的

这也就表示即使系统重启任务依然可以被继续执行。
以及如果你进行了多节点的集群部署,那么任务数据将被共享执行。

使用

在需要重试的方法上添加注解@AsyncRetryable,被注解的方法参数必须为BaseTaskParam的子类

DEMO

执行测试方法 top.rizon.WebApplicationTest.main()
在该DEMO中,为了方便演示,实现了一个基于内存的持久化方案(top.rizon.MemTaskHelper)

About

异步持久化的轮询任务工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages