Job scheduler ¶
Job scheduler¶
Job scheduler 日程为每个称为作业的处理单元定义要预先执行的日程 。此功能自动执行。如果一个任务定期执行多次,或者需要很长时间才能处理大量数据,晚上跑步时使用。intra-mart Accel Platform的Job scheduler使用Java或在时间表中定义的日程 ,由服务器端JavaScript组成的任何业务流程提供自动执行,监视执行状态和管理执行结果的功能。
样例程序¶
节目来源¶
/ ** * @参数消息世界! * / 机能 执行() { 让 accountContext = 语境。getAccountContext(); 让 jobSchedulerContext = 语境。getJobSchedulerContext(); 让 讯息 = jobSchedulerContext。getParameter(“消息”); 如果 (空值 == 讯息) { 归还 { 状态 : “错误” , 讯息 : '消息在参数中不存在。 ' }; } 别的 如果 ('' == 讯息) { 归还 { 状态 : “警告” , 讯息 : 消息是空的。 ' }; } 除错。控制台(“你好。” + 讯息); 归还 { 状态 : “成功” , 讯息 : 这项工作顺利进行。 ' }; }服务器端JavaScript的作业程序在任何JS文件中描述了执行函数。作业开发人员在此执行函数描述要在作业处理中执行的程序。
注解
在作业处理中,可以获得账号上下文和Job scheduler上下文。
使用这两个上下文描述了任意业务流程。
账号
账号上下文存储指示从Job scheduler执行Job scheduler 账号信息。
Job scheduler上下文
Job scheduler上下文包含作业, Jobnet ,触发器定义信息,存储执行信息。
作业执行方法¶
注解
有关如何从作业管理屏幕执行作业的信息,请参阅“ Tenant管理员操作指南 ”-“ 设置作业 ”。
注册工作或Jobnet¶
这是注册作业的示例。//创建Job scheduler管理器 变种 经理 = 新的 JobSchedulerManager(); 变种 职位名称 = {}; 职位名称['ja'] = { 名 : “样品工作”, 说明 : '这是一个示例工作。 ' }; 变种 工作 = { categoryId : 空值, //工作分类 ID。 编号 : “样本工作”, //工作ID。 jobPath : '/应用/工作/ sample_job', //可执行文件的路径。 jobType : 'SCRIPT', //作业执行语言。 本地化 : 职位名称, // 国际化信息 Object 。 参数 : {} //作业参数。 } //职位注册 变种 结果 = 经理。insertJob(工作); 如果 (结果。错误) { //错误处理 }这是注册Jobnet的示例。//创建Job scheduler管理器 变种 经理 = 新的 JobSchedulerManager(); 变种 jobnetNames = {}; jobnetNames['ja'] = { 名 : “样本Jobnet ”, 说明 : '这是一个示例Jobnet 。 ' }; 变种 useJobIds = [ “样本工作” ]; 变种 工作网 = { categoryId : 空值, // Jobnet 分类 ID。 不允许并发 : false, //无法并行执行。 编号 : “ sample-jobnet”, // Jobnet ID。 jobIds : useJobIds, //执行作业数组。 (这是一个按作业执行顺序设置作业ID的数组。) 本地化 : jobnetNames, // 国际化信息 Object 。 参数 : { 讯息 : “世界!” }, // Jobnet参数。 useJobIds : useJobIds //此Jobnet使用的作业数组。 } // Jobnet注册 变种 结果 = 经理。insertJobnet(工作网); 如果 (结果。错误) { //错误处理 }
运行工作¶
这是立即执行指定Jobnet的示例。//创建Job scheduler管理器 变种 经理 = 新的 JobSchedulerManager(); 变种 triggerId = “样本触发”; 变种 结果 = 经理。findTrigger(triggerId); 如果 (结果。错误) { 变种 重复触发 = { 编号 : triggerId, //触发ID。 类型 : “重复触发”, //触发类别 。 使能 : true, //有效。 jobnetId : “ sample-jobnet”, // Jobnet ID。 算 : 1个, //执行次数。 间隔 : 空值 //执行间隔(秒)。 } //如果不存在触发器,则创建新的 结果 = 经理。insertTrigger(重复触发); } 别的 { //重新注册并执行已注册的触发器 结果 = 经理。updateTrigger(结果。资料); } 如果(结果。错误){ //错误处理 }