intra-mart Accel Platform 脚本开发模式编程指南 第16版2020-04-01

Job scheduler

Job scheduler

Job scheduler 日程为每个称为作业的处理单元定义要预先执行的日程 。
此功能自动执行。如果一个任务定期执行多次,或者需要很长时间才能处理大量数据,
晚上跑步时使用。
intra-mart Accel Platform的Job scheduler使用Java或
在时间表中定义的日程 ,由服务器端JavaScript组成的任何业务流程
提供自动执行,监视执行状态和管理执行结果的功能。

规格书

Job scheduler技术规范, Job scheduler ,请参阅规格。

样例程序

样品内容

固定字符串“ Hello。”连接到在键“ message”中设置的参数值并输出。

节目来源

/ **
* @参数消息世界!
* /
机能 执行() {
   accountContext = 语境getAccountContext();
   jobSchedulerContext = 语境getJobSchedulerContext();
   讯息 = jobSchedulerContextgetParameter“消息”);
  如果 空值 == 讯息 {
     归还 {
        状态  “错误” 
        讯息  '消息在参数中不存在。 '
     };
  } 别的 如果 '' == 讯息 {
     归还 {
        状态  “警告” 
        讯息  消息是空的。 '
     };
  }
  除错控制台“你好。” + 讯息);
  归还 {
     状态  “成功” 
     讯息  这项工作顺利进行。 '
  };
}
服务器端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 = “样本触发”;

变种 结果 = 经理findTriggertriggerId);
如果 结果错误 {
   变种 重复触发 = {
      编号  triggerId //触发ID。
      类型  “重复触发” //触发类别 。
      使能  true //有效。
      jobnetId  “ sample-jobnet” // Jobnet ID。
        1个 //执行次数。
      间隔  空值 //执行间隔(秒)。
   }
   //如果不存在触发器,则创建新的
   结果 = 经理insertTrigger重复触发);
} 别的 {
   //重新注册并执行已注册的触发器
   结果 = 经理updateTrigger结果资料);
}
如果结果错误){
   //错误处理
}

intra-mart Accel Platform 2014 Winter之后的作业的立即执行方法

您可以通过以下方式日程作业立即运行:
//创建Job scheduler管理器
变种 经理 = 新的 JobSchedulerManager();

//立即执行指定的Jobnet
变种 结果 = 经理执行“ sample-jobnet”);
如果 结果错误 {
   //错误处理
}