苍穹调度:搞定你的定时业务功能

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

苍穹调度:搞定你的定时业务功能


用户(开发者、运维人员、普通用户等)在使用苍穹时,经常会面对大量且复杂的业务需求,其中就难免会遇到一些需要周期性执行的重复的业务功能。


比如像闹钟那样在特定时间点自动提醒的业务功能,这时就可以使用苍穹调度功能




1 调度功能-解决方案


通过调度功能,解决周期性执行的重复业务功能,主要包括三个部分:调度任务、调度作业、调度计划

  • 调度任务:可以看做是一个java类(由开发者编写代码来制定这个调度任务,制定它进行什么样的操作)。

  • 调度作业:执行调度任务,即执行这个java类的代码。

  • 调度计划:多个调度作业的集合,可以配置这些调度作业的执行时间、执行周期。


使用调度需要经过以下几个步骤:


1.编写调度任务:写代码,继承AbstractTask,编写一个调度任务。

2.注册调度任务类:在开发平台,查找【调度任务类】页面,标识是sch_taskdefine,把上一步写好的类注册进去。

3.新增调度作业:通过【系统服务云】进入【系统管理】,新增【调度作业】,调度作业可以选择一个调度任务。

4.新增【调度计划】:配置【调度规则】,选择第3步创建的调度作业,指定执行的开始时间、失效时间等等。


调度计划是在任务开始时间的时间节点到达时开始执行。还能指定是否重复执行,每次重复执行的时间,重复执行的次数等等。


调度使用的流程图如下:



2 关键步骤详情


Step1 编写调度任务


首先,需要编写调度任务。如下,编写一个简单打印日志的调度任务,继承AbstractTask,重写execute方法:

package kd.bos.api.task;


import kd.bos.context.RequestContext;
import kd.bos.exception.KDException;
import kd.bos.schedule.executor.AbstractTask;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
public class KDFLogTask extends AbstractTask {
    @Override
    public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
        System.out.println("打印日志测试:" + df.format(new Date()));// new Date()为获取当前系统时间
        Log log = LogFactory.getLog(KDFLogTask.class);
        log.info("打印日志测试:" + df.format(new Date()));
    }
}


如果zookeeper有多台cosmic构成集群,并且当前执行是用DebugServer的开发模式,本地增加MQ的接收信息,需要指定当前cosmic执行调度任务。通过增加如下参数配置实现:


System.setProperty("mq.debug.queue.tag", "wrxtest");


假如没有加上述这个参数配置,由于插件的代码还在本地,没有包含在平台的jar包里,MQ信息可能被其他cosmic机器消费,其他的cosmic机器会执行这条调度作业,这样就会引发ClassNotFound的异常。所以一定要加这个参数,保证这台机器消费这个调度作业。


参数配置方法


Step2 注册调度任务类


其次,从【开发服务云】进入【开发平台】,搜索【调度任务类】页面,列表新增,把写好的类注册进去。



Step3 新增【调度作业】


再次,从【系统服务云】进入【系统管理】,新增【调度作业】。





Step4 创建【调度计划】


最后,从【系统服务云】进入【系统管理】,创建【调度计划】。



注意:

1.配置完成之后保存,在到达开始时间节点时,自动开始执行调度作业。

2.如果点击手工执行,会立即执行一次调度计划。



3 调度执行及异常管理

3.1 查看调度作业


通过【系统服务云】→【系统管理】【调度任务】可以查看调度作业的执行情况。


这里查看到的,其实是调度作业,跟【调度任务类】没有关系。



3.2 查看异常作业信息


如果作业状态是“失败”,可以在开发平台查看【异常作业记录】页面,标识是sch_errorjob。

操作步骤见下图:




4 参考资料


调度任务操作说明


后台任务介绍


调度计划,调度作业,调度任务


Java插件,代码创建调度计划和调度作业




#往期推荐#



#  这些开发小技巧,你还不知道么

#  超有料的“扩展&继承”使用宝典,你还不来学?

 如何五分钟定义一个Servlet请求?

#  好家伙,两种方式轻松实现苍穹跳转页面


更多精彩内容,“码”上了解!↓




苍穹调度:搞定你的定时业务功能

用户(开发者、运维人员、普通用户等)在使用苍穹时,经常会面对大量且复杂的业务需求,其中就难免会遇到一些需要周期性执行的重复的业务功...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息