当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

Tasklet

简单的任务管理框架
授权协议 GPL
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 陶博涉
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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上搜索并下载指定应用的功能。


  • Tasklet 介绍 Linux 内核提供的四种中断下半部中 softirq(软中断)、tasklet(小任务)、workqueue(工作队列) 、request thread(中断线程)中的其中一种,其效率仅次于软中断,但远高于request thread 和 workqueue。 软中断(softirq) 之所以性能高的原因,在 SMP 系统下多个 cpu 同时并发处理 如网卡的 fifo 半

  • 软中断 1 软中断作为下半部机制的代表, 2 是随着SMP(share memory processor)的出现应运而生的 3 软中断是tasklet实现的基础(tasklet实际上只是在软中断的基础上添加了一定的机制)。 4 软中断一般是“可延迟函数”的总称 5 软中断可以在多个CPU上并行执行 6 软中断 可以并发运行在多个CPU上(即使同一类型的也可以)。所以软中断必须设计为可重入的函数(允

  • 1.概述 在前面的使用篇已经清晰的描述了tasklet的实现目的与使用方法。本节将重点描述tasklet的实现原理和方法。 2.tasklet的实现 在嵌入式系统中系统逻辑都比较简单,正常情况下一个应用系统中的任务数量是比较少的。系统大多数情况下都是在等待数据,所以系统大多数时间实际上是在空闲任务中执行的。所以,为了给bcos中增加更多有用的功能,bcos在空闲任务中实现了tasket的功能。ta

  • tasklet机制用于queue up work等到未来某时执行。tasklet可以并行执行,但同一个tasklet在某一时刻只能运行于某一CPU上。为了cache优化,每个tasklet只会在调度它的CPU上运行。 tasklet就好比一个既没有stack也没有context的小巧thread,它会快速执行完毕。 概要 使用tasklet需要注意一些原则: tasklets是原子操作的,所以不能

  • 本文摘抄于奔跑吧linux内核:基于linux内核源码问题分析 tasklet是利用软中断实现的下半部机制,本质上是软中断的一个变种,运行在软中断上下文中 基本原理:每个cpu都有两个链表,分别保存的是普通优先级(tasklet_vec)和高优先级(tasklet_hi_vec)的tasklet_struct的链表。当调用tasklet_schedule,其实就是将tasklet_struct挂到

  • 作为Linux内核中的下半部工作机制之一,tasklet有它存在的价值和意义,和其它的中断延迟工作机制互补。 Tasklet是在I/O驱动中实现延迟执行函数的首选方法。如前所述,Tasklet是建立在两个名为HI_SOFTIRQ和TASKLET_SOFTIRQ的软中断之上。多个Tasklet可以与同一个软中断相关联,每个Tasklet都包含自己的函数。实际上,这两个软中断并没有什么区别,只是在do

  • tasklet是一种软中断,是基于softirq的基础演变而来的,但是由于资源的限制,softirq是在内核里面预定义好的,无法改变其种类,若要改变的话,就要修改内核代码,这对于驱动开发来说不是很合适.因此基于softirq发展出的tasklet来动态的改变中断的种类,这些中断使用链表连接起来,一旦发生了TASKLET_SOFTIRQ中断(tasklet对应的软中断类型),就按照链表的顺序依次全部

  • 目录 一、takslet 1.1、数据结构 1.2、初始化 1.3、执行tasklet 1.4、启用和禁用tasklet 1.5、销毁tasklet sample code: 二、workqueue 2.1、创建工作队列 2.2、调度 2.3、取消调度 2.4、销毁workqueue sample code: 三、tasklet与workqueue不同 Tasklet与workqueue的不同应用

  • linux中断管理—tasklet 一、tasklet简介 tasklet是利用软中断实现的一种下半部机制。所以说,本质上也是软中断的一种,其运行在软中断上下文。 tasklet使用struct tasklet_struct结构体来描述,如下定义(/include/linux/interrupt.h): struct tasklet_struct { //多个tasklet串接成一个链表

  • Tasklet 有的时候在驱动程序中需要延迟某些操作的进行,最典型的操作就是在驱动程序的中断处理函数延迟操作。比如在DMA驱动中,当数据传输完毕之后会触发中断的,通常这时候会启动一个tasklet来完成耗时的操作,也就是中断的下半部,让中断尽早的返回。 在Softirq中说过了,Tasklet的实现是基于Softirq的。也就是说Tasklet是Softirq中的一种。根据优先级不同,Linux将

  • 前言 要解决的问题 软中段被执行的时机 软中段被执行的过程和ksoftirq线程的关系 1.概述   硬件的中断处理函数处于中断上半部分,在CPU关中断的状态下执行,中断线程、软中断(softirq)及小任务(tasklet)属于中断的下半部分(bottom half),在CPU开中断的状态下执行。   小任务基于软中断实现,实质是对软中断的进一步封装, 在实际使用中应尽量使用小任务 。   软中

  • 一、中断处理的tasklet(小任务)机制 中断服务程序一般都是在中断请求关闭的条件下执行的,以避免嵌套而使中断控制复杂化。但是,中断是一个随机事件,它随时会到来,如果关中断的时间太长,CPU就不能及时响应其他的中断请求,从而造成中断的丢失。因此,Linux内核的目标就是尽可能快的处理完中断请求,尽其所能把更多的处理向后推迟。例如,假设一个数据块已经达到了网线,当中断控制器接受到这个中断请求信号时

 相关资料
  • 我使用FlatFileItemReader创建了一个spring批处理作业,它从一个分隔文件中读取数据,然后使用JdbcBatchItemWriter写入DB。我的setp配置如下所示。 上面的配置是为每100行打开单独的事务,因此,如果在完成tasklet(步骤1)之前发生故障,则我无法恢复之前提交的行。有没有办法在一个事务中运行整个tasklet?。 另外:我使用MapJobRepositor

  • 每个新创建的任务都是 org.gradle.api.DefaultTask 类型, org.gradle.api.Task 的标准实现,DefaultTask 所有的域都是私有的,意味着他们只能通过 setter 和 getter 方法来访问,庆幸的是Groovy提供了一些语法糖来允许你通过名字来使用域。 管理项目的版本 许多公司或者开源组织有他们自己的发布版本的措施,一般用主版本号和次版本号来表

  • 用 ceph-deploy 建立一个集群后,你可以把客户端管理密钥和 Ceph 配置文件发给其他管理员,以便让他用 ceph 命令管理集群。 创建一管理主机 要允许一主机以管理员权限执行 Ceph 命令,用 admin 命令: ceph-deploy admin {host-name [host-name]...} 分发配置文件 要把改过的配置文件分发给集群内各主机,可用 config push

  • 在San CLI中主要通过san serve和san build命令进行生产和开发环境的打包,San的脚手架工程内置了四个命令,包括启动本地服务、生产环境打包、打包分析、现代模式打包等,脚手架工程的package.json内可执行的命令有: npm run start // 打包+启动本地服务 npm run build // 打包发布 npm run analyzer // 打包分析 npm r

  • 任务管理(又称 构建)工具 任务管理/构建 工具: Gulp Grunt Tasking/build and more tools: Brunch Mimosa

  • 主要内容:Eclipse 任务管理,打开任务视图,使用任务视图Eclipse 任务管理 程序员喜欢在他们的代码中放置 TODO 标记,作为需要完成的任务的提醒。Java 代码中包含 TODO 一词的注释被识别为任务并显示在标记栏和任务视图中。 通过右键单击标记栏并选择添加任务,可以使用 Eclipse 编辑器将任务与正在编辑的文件相关联。在出现的对话框中输入任务描述并从优先级下拉列表中选择一个优先级,然后单击确定按钮。 要使用 Eclipse 编辑器移除任务

  • 管理任务 在Eclipse中用TODO标签管理任务,利用这个功能可以方便地将项目中一些需要处理的任务记录下来。 我们可以在 Java 代码中的注释添加 TODO 单词来标记一个任务,任务可以通过 Tasks(任务) 视图查看。 在Eclipse中我们可以通过鼠标右击垂直标尺并选择 Add Task 菜单来添加任务,在弹出的对话框中输入任务描述信息: 如果需要删除任务,只需右击任务图标选择 Remo

  • 管理任务 程序员喜欢在他们的代码中放置TODO标记,作为需要完成的任务的提醒。 Java代码中包含单词TODO的注释被识别为任务并显示在标记栏和“任务”视图中。 通过右键单击标记栏并选择“添加任务”,可以使用eclipse编辑器将任务与正在编辑的文件相关联。 在出现的对话框中输入任务说明并从优先级下拉列表中选择优先级,然后单击“确定”按钮。 要使用Eclipse编辑器删除任务,请右键单击标记栏中的