function Jobs() {
this._jobTable = []
}
Jobs.prototype = {
_registedJobTable: {},
initialize: function() {},
_registJob: function(jobName, rel) {
this._registedJobTable[jobName] = rel
},
add: function(jobName) {
this._jobTable.push(jobName)
},
start: function() {
var jobs = this._jobTable;
var regJobs = this._registedJobTable;
var i = 0;
var joblen = this._jobTable.length;
var getTime = function() {
return new Date().valueOf()
};
var interNum = window.setInterval(function() {
if (i >= joblen) {
clearInterval(interNum);
return
}
var jobName = jobs[i];
var job = regJobs[jobName];
i++;
if (typeof job == "undefined") {
console.log("<b>[" + jobName + "# is undefiend!!!</b>", {
html: true
});
return
}
var _try = true;
var _start = getTime();
try {
job.call()
} catch(e) {
console.log("<b>[" + jobName + "] failed!!!</b>", {
html: true
});
_try = false
} finally {
if (_try) {
var _end = getTime();
console.log("[" + jobName + "] done in " + (_end - _start) + "ms.")
}
}
},
10)
},
call: function(jobName, args) {
if (typeof this._registedJobTable[jobName] != "undefined") {
this._registedJobTable[jobName].apply(this, args)
} else {
console.log("#" + jobName + "# is undefined!!!", {
color: "#900",
bgColor: "#FFF;"
})
}
}
};
$registJob = function(name, rel) {
Jobs.prototype._registJob(name, rel)
};
测试用例:
$registJob('topic' , function() {
for(var i = 0 ; i < 10000000 ; i++) {
var arr = new Array(10000);
}
alert('function1 ends');
});
$registJob('loadComment' , function() {
for(var i = 0 ; i < 100000 ; i++) {
var arr = new Array(10000);
}
alert('function2 ends');
});
$registJob('testFun' , function() {
for(var i = 0 ; i < 100000 ; i++) {
var arr = new Array(10000);
}
alert('function3 ends');
});
function main() {
var jobs = new Jobs();
jobs.add("topic");
jobs.add("loadComment");
jobs.add('aaa');
jobs.start();
};
window.onload = main;
按照任务的方式来使制定的代码运行,巧妙的地方在于使用了setInterval,将函数的运行放到了不同的闭包中,如果其中的一个函数出了错,不会影响到其他的函数继续运行,其中添加了日志处理,记录下来每个job运行了多长时间。
分享到:
相关推荐
每个节点可以独立执行任务,避免单点故障,同时能够根据负载自动调整任务分发。 2. **任务调度策略**:Jobs提供了灵活的任务调度策略,包括定时任务、依赖任务、优先级任务等。用户可以根据业务需求设置不同的调度...
plsql创建存储过程并创建job定时任务执行详细笔记文档总结 在 Oracle 中,plsql 是一种强大的编程语言,可以用来创建存储过程和定时任务执行。在本文中,我们将详细介绍如何使用 plsql 创建存储过程并创建 job 定时...
grails jobs 定时任务 项目demo
在实际项目中,有时我们需要判断一个Quartz任务是否正在运行,以便进行相应的操作,如避免重复执行或者进行状态监控。本文将详细介绍如何在Quartz中实现这一功能。 首先,理解Quartz的工作原理是关键。Quartz通过...
执行完创建任务的命令后,可以通过查询user_jobs、dba_jobs_running、dba_jobs和all_jobs视图来查看当前用户、正在运行、已经执行完毕和系统中所有任务的状态和信息。 除了创建定时任务,DBA还可以通过DBMS_JOB包...
分布式锁允许只有一个服务实例能够获取并执行任务,其他实例在锁被占用时则需等待。Redis因其高并发性和低延迟特性,常被用作实现分布式锁的工具。 2. **任务调度器**:如`AcquireTimerJobsThread.java`和`...
/*oracle jobs 导出为执行脚本 <br> 就是把all_jobs或dba_jobs,导成DBMS_JOB.SUBMIT可以插入job的格式 其中all_jobs是当前用户的job,dba_jobs则是全部 下面只是随便整理了下,可以按照个人需要修改 ...
为了保证任务的可靠性和幂等性,`albrow/jobs`支持任务的持久化存储,即使在服务重启后,未完成的任务也能继续执行。 `albrow/jobs`库的另一个亮点是其灵活的配置选项。你可以根据实际需求选择不同的数据库(如...
本文将详细介绍几个与系统任务管理相关的命令,包括`jobs`、`bg`、`fg`、`&`以及`ctrl + z`,它们都是在Shell环境下控制进程执行的重要工具。 首先,`&`符号是最常用的命令之一,它用于将一个命令放入后台执行。当...
在这个例子中,项目可能包含了一些学习示例,如`Job`目录下的类,这些类可能代表了具体的定时任务实现,每个类通常会继承自`IFurionJob`接口,这个接口定义了任务的执行逻辑。 `appsettings.json` 和 `appsettings....
Oracle的定时任务,通常被称为“Jobs”,是数据库管理系统中的一个重要组成部分,主要用于自动化执行数据库操作,如数据备份、数据清理、报告生成等。Job界面管理工具则为这些任务提供了图形化的配置和管理界面,...
Flask是一个轻量级的Web服务程序,而flask_jobs则为其添加了处理异步任务的能力,这对于构建需要长时间运行或定时执行任务的应用程序至关重要。通过这个扩展,开发者可以方便地创建、调度和监控后台任务,无需离开...
Oracle Job 定时任务是 Oracle 数据库中的一种定时执行任务的机制,它允许用户在指定的时间点或每天的某个时间点自行执行任务。 一、查询系统中的 Job 可以通过以下视图查询系统中的 Job: * `DBA_JOBS`: 查询所有...
10. Oracle Job任务的监控:Oracle Job任务的监控可以通过dba_jobs视图、系统日志、执行日志等来实现。 Oracle Job任务是Oracle数据库中非常重要的功能,通过对Oracle Job任务的理解和掌握,可以更好地管理和维护...
在Oracle数据库中,调度任务(Jobs)是一种自动化执行SQL脚本或PL/SQL块的机制,这极大地提高了数据库管理员的工作效率。Oracle Jobs可以按照预设的时间间隔或特定日期执行,适用于执行备份、清理、统计更新等常规...
此外,Quartz还支持集群模式,可以在多台服务器上分布执行任务,提高系统的可用性和可靠性。 总的来说,Quartz是一个功能强大且灵活的Java定时任务框架,结合了多种开源组件,能够满足各种复杂的企业级调度需求。...
- `user_id`:执行任务的用户ID,这里引用了Odoo内置的根用户。 - `interval_number`:两次任务执行的时间间隔,单位由`interval_type`决定。在此处为1,表示1个时间单位。 - `interval_type`:时间单位。可选值包括...
Go-jobs包含了一个强大的调度器,它可以按照预设的时间间隔或指定时间点执行任务。调度器支持CRON表达式,使得设置定时任务变得简单。此外,调度器的线程安全设计确保了在多并发环境下的稳定运行。 5. **工作流程*...
fg、bg、jobs、&、...jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。也就是说,jobs命