调度管理
1 功能介绍
在大型系统中,对于一些需要重复、定时执行或者耗时比较长的任务经常会被剥离出来单独处理,而随着任务规模与复杂性的上升,任务调度系统也就随需而生。
任务调度系统具备可靠性及伸缩性,它可以管理并监控任务的执行流程,以保证任务的正确执行。
关键属性
任务类:即需要定时执行代码的类;
调度作业:配置任务类的细节,即注入任务类和指定任务类的方法,是一个可执行的工作;
调度计划:代表一个调度参数的配置,配置调用调度作业以及触发的计划时间;
运行日志:由调度计划和调度作业产生的一次任务记录,用于查看任务执行的情况;
调度监控:用于观察调度服务运行的状况;
主服务器:是一个计划调度器容器,容器里面可以盛放众多的调度作业,当容器启动后,里面的每个调度作业都会根据调度计划按部就班自动去执行;
执行服务器:调度计划实际运行的容器。
2 业务场景
任务调度可以说是所有系统都必须要依赖的一个中间系统,主要负责触发一些需要定时执行的任务。 定时任务是解决某一特定的时刻去做某件任务的业务场景。比如,库存计算、人员信息同步、定期报表计算。
3 主要操作
步骤一:调度任务类
入口:【系统服务云】→【系统管理】→【调度管理】→【调度作业】→【调度执行程序】→【新增】;
编写调度任务类(业务逻辑代码),继承kd.bos.schedule.executor.AbstractTask;
使用表单(sch_taskdefine)功能,对调度任务类进行描述。这个功能由开发人员配置;
对于平台人员,所属应用选择系统应用;对于业务开发,请选择对应类的应用。
步骤二:调度作业
入口:【系统服务云】→【系统管理】→【调度管理】→【调度作业】;
执行程序:选择步骤一中定义的类名;
作业负责人:负责该作业的开发人员,此字段用于消息通知模块通知人员的首选;
执行模式:包括单机执行、随机分片、任务分片三种模式。普通只支持单机执行模式,如果需要支持分片模式,需要在任务类中实现相应的分片逻辑。分片任务类实现逻辑,可参考该文章:调度作业新增两种执行模式:广播分片和任务分片相关内容;
执行顺序:默认为串行;
执行上下文:调度作业属于后台任务,在一些业务场景下,执行程序中需要获得上下文时,配置此项;
自定义参数:配合任务类,实现调度作业逻辑的多样性,可在运行时指定不同的参数,运行不同逻辑的调度作业;
分片参数:执行模式为任务分片时出现。配合任务类,按照用户指定的分片参数,实现调度作业的分片;
消息通知:支持失败、成功两种类型的消息通知模式。
步骤三:调度计划
入口:【系统服务云】→【系统管理】→【调度管理】→【调度计划】;
维护编码与名称;
选择调度作业,支持选择多个调度作业,多作业执行采用并行方式;
开始时间:调度计划的开始时间;
失效时间:调度计划的失效时间;
计划负责人:该计划的负责的实施人员,此字段用于消息通知模块通知人员的首选;
计划设置(执行频率):目前支持分钟、小时、天、周、月、年,支持cron表达式。
corn表达式设置方式可参考该文章:调度作业新增两种执行模式:广播分片和任务分片相关内容。
步骤四:调度日志
入口:【系统服务云】→【系统管理】→【调度管理】→【运行日志】;
支持按照调度作业维度查询调度作业的运行情况;
当启用分片执行时,用分片id区分相同批次不同分片执行的调度作业。
注意:如果需要查看调度作业的异常日志,可在开发平台中查找【异常作业记录】页面,标识是sch_errorjob。
步骤五:调度监控
入口:【系统服务云】→【系统管理】→【调度管理】→【调度监控】;
查看主服务器与执行服务器的运行情况。
调度管理
本文2024-09-23 00:33:55发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140276.html