简单的任务管理框架 Tasklet

GPL
Java
跨平台
2014-10-20
pseudo

Tasklet是一个简单的任务管理框架,主要用于将一个大任务分割成许多较小的子任务,并管理这些子任务的执行。Tasklet主要有以下4个类:

  • Task : 任务/子任务,多个Task组成一个完整的任务/功能。
  • Manager : 任务/子任务的执行入口。通过内部维护一个Task容器来管理要运行的Task。
  • Context : 为子任务提供运行环境的上下文消息和服务。
  • Launcher: 启动一个完整的任务,主要用于配置任务的执行入口和Context环境信息。

Tasklet的主要思想是将一个大型任务分解为多个功能,每个功能又可分为多个Task; 一个或多个Task组成一个子功能,其入口就是Manager;一个或多个Manager/Task组成一个完整的任务,其入口就是Launcher。可将它们简单地理解为一个任务树:

Launcher
|
Manager
|     \
|       Manager...
|       |
|       |
Task    Task...


Tasklet主要有如下特点:

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

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

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

目录结构

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

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


加载中

评论(0)

暂无评论

暂无资讯

暂无问答

嵌入式Linux内核tasklet机制(附实测代码)

Linux 中断编程分为中断顶半部,中断底半部 中断顶半部: 做紧急,耗时短的事情,同时还启动中断底半部。 中断底半部: 做耗时的事件,这个事件在执行过程可以被中断。 中断底半部实现方法:...

02/15 15:45
0
0
Kernel tasklet

内核 tasklet 机制是在软中断的基础上实现的。我们知道软中断有如下两点,导致比较难用: (1)软中断在内核中静态注册。如果要增加新的软中断,必须修改内核代码,重新编译内核镜像。 (2)...

05/15 20:49
7
0
下半部机制之微线程

微线程(tasklet)是一种更通用的下半部机制,大多数情况下应该优先使用微线程,只有在对性能要求非常高的时候才考虑使用软中断。然而,微线程是基于软中断的,它实际上是一个软中断。内核中的...

2014/05/12 21:28
23
0
Spring Batch_实现Tasklet

Spring Batch_实现Tasklet

2014/12/01 17:47
616
0
中断处理

操作系统需要管理连接到计算机上的硬件设备,如果高效的管理这些硬件设备,好办法是提供一套机制:让硬件在需要的时候向内核发出信号,这就是中断机制。 中断使得硬件得以发出信号给处理器,...

2012/12/22 14:10
326
0
Linux2.6可延迟中断

一、基本概念 1.Linux把紧随中断要执行的操作分为三类 特点 处理方法 举例 第一类 紧急的 在禁止可屏蔽中断的情况下立即执行 修改设备和处理器同时访问的数据结构 第二类 非紧急的 在开中断的...

2016/06/13 13:25
7
0
linux设备驱动之中断处理

尽管有些设备仅通过它们的I/O寄存器就可以得到控制,但现实中的大部分设备却比这复杂一些。设备需要与外部世界打交道,如旋转的磁盘,绕卷的磁带,远距离连接的电缆等。这些设备的许多工作通...

2011/10/08 14:13
2.8K
2
中断和网络驱动程序

中断 当特定的事件发生时,设备驱动程序会代表内核指示设备产生硬件中断。内核将中断其他的活动,然后调用一个驱动程序所注册的处理函数,以满足设备的需要。当事件是接收到一个帧时,处理函...

2012/05/16 10:29
118
0
【整理】Python之JIT、Django、Greenlet和Stackless

【JIT】 即时编译(Just-in-time compilation),又称为动态编译,是一种提高程序运行效率的方法。 通常程序有两种编译方式:静态编译与动态编译(直译)。在静态编译中,程序在执行前全部被翻...

2012/11/06 19:13
981
0
自旋锁使用规则

知道在什么样的情况下使用什么版本的获得和释放锁的宏是非常必要的

2014/08/18 08:55
116
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部