简单的 Java 工具类:Tasklet

jopen 5年前

Tasklet是一个简单的 Java 工具类,主要用于将一个大任务分割成许多较小的子任务,然后对这些子任务进行协调管理。Tasklet主要有以下4个类:

  • Task : 任务/子任务,多个Task组成一个完整的任务/功能。

  • Manager : 任务/子任务的执行入口。通过内部维护一个Task容器来管理要运行的Task。

  • Context : 为子任务提供运行环境的上下文消息和服务。

  • Launcher: 启动一个完整的任务,主要用于配置任务的执行入口和Context环境信息。

Tasklet 的主要思想是将一个大型任务分解为一个任务树,每个结点都是一个Task/Manager实例。 一个或多个Task组成一个子功能,其入口就是Manager;一个或多个Manager组成一个完整的任务,其入口就是Launcher。

Tasklet主要有如下特点:

  • 简单灵活:Tasklet只有4个主类,可以通过继承Task或Manager实现更高级的功能与控制。

  • 重试机制:不同的Manager实现提供了不同的重试策略。

示例程序hiapk通过使用StackManager实现了即时重试(详情参见Step01.java)

目录结构

  • tasklet: tasklet源工程, 可以从target文件夹中下载已编译好的jar文件。

  • hiapk  : 示例程序, 简单模拟了从m.apk.hiapk.com上搜索并下载指定应用的功能。

项目主页:http://www.open-open.com/lib/view/home/1413796308606