调度计划,调度作业,调度任务原创
金蝶云社区-吴锐雄
吴锐雄
76人赞赏了该文章 17565次浏览 未经作者许可,禁止转载编辑于2024年01月11日 16:05:27

创作不易,如果文章对您有帮助,请为我点击一个朴实无华的赞^_^


在【系统服务云】使用 调度计划、调度作业、调度任务

关于调度计划、调度作业、调度任务的一些个人理解:

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

调度作业去执行这段java类的代码设置执行过程中的一些参数;

调度计划是多个调度作业的集合,设置这些作业在什么时候执行。


关于调度任务,有一点不要混淆:苍穹4.0版本,【系统服务云】->【系统管理】->【调度任务】中,查看到的,其实是调度作业,跟调度任务类没有关系。


如何通过插件代码,创建调度作业和调度计划,请参考我的其他文章:

https://vip.kingdee.com/article/183694459220099840


使用步骤

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

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

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

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

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

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

6.查看调度作业异常日志:开发平台,查找【异常作业记录】页面,标识是sch_errorjob


使用步骤详情

1.编写调度任务

如下,我编写了一个简单打印日志的调度任务

继承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()));
    }

}


1.1 配置MQ参数

如果zookeeper有多台cosmic构成集群,并且当前执行是用DebugServer的开发模式

本地增加MQ的接收信息,需要指定当前cosmic执行调度任务

如果没有加这个参数配置,由于插件的代码还在本地,没有打进平台的jar包,MQ信息可能被其他cosmic机器消费,其他的cosmic机器会执行这条调度作业,这样就会引发ClassNotFound的异常。

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

image.png


2. 调度任务类


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

image.png


image.png

image.png

image.png



3. 【系统服务云】进入【系统管理】,新增【调度作业】

image.png

image.png

image.png


调度作业选择之前创建好的调度任务

image.png

image.png

image.png



4.创建调度计划

image.png

image.png

image.png

image.png

image.png


注意:

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

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

image.png



5.查看调度任务

image.png

image.png


6.查看异常作业信息

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

image.png

image.png

image.png


总结:调度使用流程图

image.png


苍穹升级版本之后的调度


苍穹版本4.0.007.0之后,调度的界面也有一些改变:

image.png

调度计划和调度作业不变。

运行日志就是前面文章说到的【调度任务】。

异常日志就是前面文章说到的【异常作业信息】。

点击【调度任务类名】,现在直接就可以在这里注册 调度任务类,不再需要进入【开发平台】里面注册。

而且还能查询调度任务类名的列表。





赞 76