Ext.util.TaskRunner 用来管理多任务定时管理。每一个任务是一个JS对象,具有以下属性
run, interval, args, scope, duration, repeat。
示例如下:
var task = {
run : function(){...},
interval : 1000,
args : [],
scope : obj,
duration : 5000,
repeat : 3
}
run和interval是必选,其它为可选。
鸟瞰类如下:
Ext.util.TaskRunner = function(interval){
interval = interval || 10;
var tasks = [],
removeQueue = [],
id = 0,
running = false,
...
// private
runTasks = function(){
...
};
this.start = function(task){
...
};
this.stop = function(task){
...
};
this.stopAll = function(){
...
};
};
Ext.TaskMgr = new Ext.util.TaskRunner();
Ext.util.TaskRunner 为一个类,需要new后使用。定义方式同Ext.util.DelayedTask
,采用构造函数方式
。
向外提供了三个接口方法,start,stop,stopAll。另外一堆私有函数协助构造整个类,其中最重要的为runTasks,this.start中调用其。
最后一句可以看到给顶级的命名空间Ext上挂了个TaskMgr,Ext库自身使用使用 Ext.TaskMgr 进行多任务定时管理。
下面先列出该类的使用
示例1
// 创建一个任务管理对象
var taskMgr = new Ext.util.TaskRunner();
// 创建一个任务
var task1 = {
run : function(){
console.log('test');
},
interval : 1000
};
// 开始执行任务task1
taskMgr.start(task1);
从控制台可以看到每隔一秒输出了一次test。run为function类型,即表示一个任务。interval为Number类型,表示任务执行间隔的时间。
示例2
// 创建一个任务管理对象
var taskMgr = new Ext.util.TaskRunner();
// 创建一个任务
var task1 = {
run : function(){
console.log(arguments);
console.log(this);
},
interval : 1000,
args : [1,2],
scope : window
};
// 开始执行任务task1
taskMgr.start(task1);
从控制台可以看到每隔一秒输出了"[1,2]","window"。即args(Array类型)为run调用时的参数,scope(Object类型)为run执行时的上下文。
示例3
// 创建一个任务管理对象
var taskMgr = new Ext.util.TaskRunner();
// 创建一个任务
var task1 = {
run : function(){
console.log('test');
},
interval : 1000,
duration : 5000
};
// 开始执行任务task1
taskMgr.start(task1);
从控制台可以看到仍然是每隔一秒输出一次"test",但5秒后就停止了。即duration(整数,单位为毫秒)为任务run持续执行的时间,超过该时间不再执行。注意,duration设置为4900也会执行5次。
示例4
// 创建一个任务管理对象
var taskMgr = new Ext.util.TaskRunner();
// 创建一个任务
var task1 = {
run : function(){
console.log('test');
},
interval : 1000,
repeat : 3
};
// 开始执行任务task1
taskMgr.start(task1);
从控制台可以看到仍然是每隔一秒输出一次"test",但输出3次后就停止了。即repeat(Number类型)为任务run执行的次数,超过该次数不再执行。注意,repeat不能为小数(如3.3),否则将会一直执行而不是执行3次。
以上示例了解到了任务对象的各个属性意义。但仅仅是一个任务,
// 创建一个任务管理对象
var taskMgr = new Ext.util.TaskRunner();
// 创建一个任务
var task1 = {
run : function(){
console.log('test1');
},
interval : 1000,
};
var task2 = {
run : function(){
console.log('test2');
},
interval : 3000,
};
// 开始执行任务
taskMgr.start(task1);
taskMgr.start(task2);
从控制台可以看到仍然第一秒输出"test1","test2",第二秒时只输出test1,第三秒又输出"test1","test2"。即有两个任务在执行。
明白了start方法,stop和stopAll方法就很好理解了。无须复述。
分享到:
相关推荐
最后,"EXT核心API详解(七)-Ext.KeyNav KeyMap JSON Format DelayedTask TaskRunner TextMetrics XTemplate.txt"涉及键盘导航(KeyNav)、键映射(KeyMap)、JSON格式化、延迟任务(DelayedTask)、任务调度器...
"EXT核心API详解(七)-Ext.KeyNav KeyMap JSON Format DelayedTask TaskRunner TextMetrics XTemplate.txt"涵盖了键盘导航(KeyNav)、键映射(KeyMap)等高级交互功能,JSON格式处理,延迟任务(DelayedTask)和任务...
为了实现窗口的动态弹出和隐藏,使用了`Ext.TaskMgr`进行定时任务管理。其中,`upTask`用于控制窗口向上移动,而`downTask`则用于控制窗口向下移动。这两个任务的执行间隔均为`moveSpeed`,单位为毫秒。 ##### 4. *...
通过理解中断服务程序的工作原理和编写中断服务函数,开发者可以灵活地设计出各种实时性要求高的应用,例如按钮检测、脉冲计数、定时任务等。在实际应用中,需要注意中断的优先级设置、中断嵌套以及避免中断处理过程...
为了使弹出框在n秒后自动关闭,我们需要创建一个延时任务,并在任务中调用`Ext.MessageBox.hide`方法。延时任务的创建和启动可以通过`new Ext.util.DelayedTask(function() { ... })`和`delay`方法实现。以下是一个...
Linux的任务管理包括进程管理和定时任务。ps, top, htop等工具用于查看和管理进程,crontab用于设置定时任务。在故障排查方面,要学会利用日志(如/var/log/下的各类日志文件),使用grep, tail, less等工具定位问题...
这个日历控件不仅提供标准的日期选择功能,还扩展到了小时、分钟和秒钟的精细化选择,使得用户能够精确设定时间,这对于需要精确时间输入的场景(如会议预约、定时任务等)非常有用。 该控件的核心功能可能包括以下...
4. **多任务兼容**:在多任务环境中,确保对GPIO的访问是线程安全的,避免数据竞争和冲突。 5. **定时操作**:可能包含定时器功能,允许在特定时间间隔后改变GPIO状态,或者在特定事件发生时触发动作。 在"ext-gpio...
- **概述**:Ext.util.TaskRunner类用于管理和执行定时任务。 - **常用方法**: - `Ext.util.TaskRunner.run(task)`:运行任务。 - `Ext.util.TaskRunner.stop(task)`:停止任务。 #### 二十二、Ext.util....
1. **支持AUTOSAR软件集群和经典平台的灵活性**:这一改变意味着系统能够更好地管理和调度多个软件组件,以适应不同场景的需求,提高整体系统的响应速度和效率。 2. **使用“shall”替换“must”**:根据TPS_STDT_...
使用sed、awk、grep等工具处理文本数据,cron定时任务执行计划任务。 十、故障排查 日志分析、性能监控数据、strace跟踪系统调用、gdb调试程序,都是排查问题的常用手段。了解核心转储(core dump)和系统调用跟踪...
- `cron`: 定时任务管理,通过crontab文件设定定时任务。 以上只是Linux命令和系统管理的基础,实际操作中还有更多高级功能和技巧。学习和熟练掌握这些命令,将使你在处理Linux系统时更加得心应手。不断实践和探索...
此外,还会讲解cron定时任务的设定,实现定期自动化任务执行。 七、软件包管理与编译安装 在LINUX中,有各种软件包管理系统,如apt(Debian系)、yum(RPM系)等,白皮书将指导如何使用这些工具进行软件安装、升级...
它涵盖了Linux系统的基本概念、安装、用户管理、文件系统、网络配置、权限管理、软件安装与更新、进程管理以及系统监控等多个核心主题。这个CHM(Compiled HTML Help)文件是一个压缩的电子书格式,通常包含了丰富的...
JSON Format用于处理JSON数据,DelayedTask和TaskRunner用于定时任务,TextMetrics用于计算文本的尺寸,XTemplate则是一种强大的模板引擎,方便数据和视图的绑定。 总的来说,这个资源涵盖了ExtJS的大部分基础API,...
标题“定时备份文件”涉及到的是一个重要的IT管理实践,它主要关注如何定期自动备份关键数据,以防止数据丢失或系统故障。在这个过程中,通常会使用特定的工具和技术来实现自动化,确保数据的安全性和可恢复性。 ...
Linux的任务调度包括cron定时任务和at一次性任务,通过编辑`/etc/crontab`配置定时任务。 六、软件包管理与编译安装 Linux发行版通常提供包管理器,如Debian系的`apt`,RedHat系的`yum`或`dnf`,用于安装、升级、...
中断优先级是另一个重要的考虑因素,它决定了微控制器如何处理同时发生的多个中断。 在"timer_ext_int.asm"这个文件中,我们可以预期看到用汇编语言编写的相关代码。汇编语言是低级编程语言,直接对应于机器指令,...
通过编写shell脚本,可以实现批量任务执行、定时任务调度等。 10. **故障排查**:学习如何使用`dmesg`查看内核消息,`strace`跟踪系统调用,`gdb`调试程序,以及`syslog`日志分析,能帮助定位和解决问题。 这个...
作为一位Linux系统管理员,你需要了解操作系统的基本架构、安装与配置、用户与权限管理、软件包管理、网络服务配置、存储管理以及故障排查等多个方面。下面我们将详细探讨这些关键知识点。 1. **Linux操作系统基础*...