新增任务

使用BEAN模式的任务,需要首先基于XXL-JOB执行器源码开发新的JobHandler,并记录对应执行器中JobHandler类中“@JobHandler”注解的自定义value值。

  1. 系统管理员在顶部导航栏中单击[云服务/应用中间件/分布式任务调度平台]菜单项,进入任务管理页面。

  1. 单击左导航树中的[任务管理]菜单项,进入任务管理页面。

  1. 单击<新增任务>按钮,弹出新增任务窗口。

  1. 配置任务参数。

表-1 任务参数

参数

说明

执行器

任务绑定的执行器,每个任务必须绑定一个执行器,一个执行器可以绑定多个任务。

任务触发调度时,会自动发现注册成功的执行器,实现任务自动发现功能。

任务描述

输入该任务的描述,便于创建后的识别和查找。

cron表达式

cron表达式是一个字符串,用来表达任务定时执行的时间表达式。cron表达式字符串的语法格式此处不做介绍,您可以查阅cron相关资料了解。

企业应用平台将不易理解的字符串转化为了界面可视化配置,您不需要填写复杂的字符串,单击输入框,激活可视化选择界面,选择定时周期,即可自动生成字符串。配置方法如下:

  • 支持选择的时间范围包括秒、分钟、小时、日、月、周、年七个控制域,可按需选择多个,任务按照满足所有条件的时间周期执行。

  • 在各控制域内的任务执行频率配置解释如下,以“日”为例,包括七种策略:

  • 每日:每天执行。

  • 不指定:不对“日”控制域做限制。

  • 周期:每月的执行日期,即在几日-几日期间内执行。

  • 选定时间之后:每月从第几日开始,每几天执行一次。

  • 工作日执行:在每月几日最近的那个工作日执行。

  • 本月最后一天:在每月最后一天执行。

  • 指定:按照日期列表的格式展示1-31,您可以按需选择任务执行的日期。

  • 配置多个控制域后的执行时间举例:

  • 每年三月第二周的星期三下午2:102:4430秒执行一次。

  • 2020-2022年期间,每年三、六、九、十二月距离25日最近的一个工作日,上午十点开始每三小时执行一次。

路由策略

当执行器为多个实例组成的集群时,需要选择路由策略,包括:

  • 第一个:固定选择第一个机器。

  • 最后一个:固定选择最后一个机器。

  • 轮询:轮询选择。

  • 随机:随机选择机器。

  • 一致性Hash:每个任务按照Hash算法固定选择某一台机器,且所有任务均匀散列在不同机器上。

  • 最不经常使用:使用频率最低的机器优先被选择。

  • 最近最久未使用:最长时间未使用的机器优先被选择;

  • 故障转移:按照顺序依次进行心跳检测,第一个心跳检测成功的机器选定为目标执行器并发起调度。

  • 忙碌转移:按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度。

  • 分片广播:广播触发集群中所有的机器各执行一次任务,同时系统自动传递分片参数,可根据分片参数开发分片任务。

运行模式

  • BEAN:任务以JobHandler方式维护在执行器端,需要结合JobHandler属性匹配执行器中的任务

  • GLUE (Java):任务以源码方式维护在调度中心,该模式的任务实际上是一段继承自IJobHandlerJava类代码,在执行器项目中运行。

  • GLUE (Shell):任务以源码方式维护在调度中心,该模式的任务实际是一段Shell脚本。

  • GLUEPython):任务以源码方式维护在调度中心,该模式的任务实际是一段Python脚本。

  • GLUEPHP):任务以源码方式维护在调度中心,该模式的任务实际是一段PHP脚本。

  • GLUENodeJS):任务以源码方式维护在调度中心,该模式的任务实际是一段NodeJS脚本。

  • GLUEPowerShell):任务以源码方式维护在调度中心,该模式的任务实际是一段PowerShell脚本

阻塞处理策略

当调度任务过于密集,执行器来不及处理时的处理策略。

  • 单机串行:默认处理策略。调度请求进入某台执行器后,调度请求进入FIFO队列并以串行方式运行。

  • 丢弃后续调度:调度请求进入某台执行器后,发现执行器存在运行的调度任务,本次请求将会被丢弃并标记为失败。

  • 覆盖之前调度:调度请求进入某台执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本调度任务。

JobHandler

运行模式为“BEAN”时为必填,即对应执行器中JobHandler类中“@JobHandler”注解的自定义value值。

子任务ID

每个任务都拥有唯一的任务ID,当本任务执行结束并且执行成功时,将会触发子任务ID所对应的任务主动调度执行一次。

  • 任务ID在新增任务成功后自动生成,可以从任务列表获取。

失败重试次数

当任务调度失败时,会按照本处配置的失败重试次数主动进行重试,若超过重试次数仍未成功,则任务失败。

任务超时时间

单次任务运行超时后,将会主动中断任务。

报警邮件

当任务调度失败时,接收邮件通知的邮箱地址,支持配置多邮箱地址,多个邮箱以逗号分隔。

任务参数

任务执行时,所需的参数。

 

  1. 单击<确定>按钮,完成操作,返回任务列表。