苍穹调度:搞定你的定时业务功能
用户(开发者、运维人员、普通用户等)在使用苍穹时,经常会面对大量且复杂的业务需求,其中就难免会遇到一些需要周期性执行的重复的业务功能。
比如像闹钟那样在特定时间点自动提醒的业务功能,这时就可以使用苍穹调度功能。
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 参考资料
#往期推荐#
更多精彩内容,“码”上了解!↓
苍穹调度:搞定你的定时业务功能
本文2024-09-23 00:35:19发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140432.html