任务管理

本文介绍如何在任务管理页面创建并管理XXL-JOB。

创建调度任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理,单击创建任务。在基本配置向导页,配置调度任务的相关信息,然后单击下一步

    image

    配置项分类

    配置项

    描述

    默认值

    基本配置

    任务名称

    任务的名称,同一个应用下需保持唯一。

    任务描述

    任务的描述。

    关联应用

    该应用属于哪个应用。

    任务类型

    支持BEAN、Dify工作流、GLUE(Java)、GLUE(Shell)、GLUE(Python)、GLUE(PHP)、GLUE(NodeJs)、GLUE(PowerShell)任务类型。

    BEAN

    JobHandler名称

    对应执行器端被@Xxljob注解声明的jobHandler

    路由策略

    轮询、随机、第一个、最后一个、最不经常使用、最近最久未使用、一致性哈希、分片广播。

    轮询

    堵塞处理策略

    客户端级别的限流策略:单机串行、丢弃后续调度、覆盖之前调度。

    单机串行

    优先级

    低、中、高、非常高。

    输入

    任务的参数,最大2000字节。

    高级配置

    任务失败重试次数

    任务失败自动重试的最大次数。

    0

    任务失败重试间隔

    任务每次失败重试的间隔。

    30

    任务并发数

    同一个任务同一时间允许运行的最大实例个数,1表示不允许重复执行。如果超过并发数,会跳过当前调度。

    1

    子任务ID

    输入子任务ID。

    说明

    任务执行成功后,触发子任务执行。可以输入多个子任务ID,并以逗号分隔。

  4. 定时配置向导页,设置定时参数和高级配置参数,然后单击下一步

    image

    配置项

    描述

    默认值

    时间类型

    none、cron、api、fixed_rate、fixed_delay、one_time。

    cron

    时间表达式

    不同的时间类型有不同的表达式:

    • none:无表达式。

    • cronCron表达式,可以精确到秒。

    • fixed_rate:固定执行频率,单位秒,即每隔N秒调度一次。

    • fixed_delay:固定延时,单位秒,即上次执行完成后隔N秒再调度下一次。

    • api:通过openapi调度。

    • one_time:一次性任务,跑完任务自动销毁,格式"yyyy-MM-dd HH:mm:ss",比如"2024-10-10 12:12:20"。

    数据时间偏移

    数据时间相对于调度时间的偏移,可以在调度时从上下文获取该值。

    时区

    可以按照固定时区调度,主要适用于cron表达式。

    当前地域时区

    日历

    可以导入自定义日历,按照日历调度,比如只想在工作日执行。

    每天调度

    生效时间

    指定任务开始生效时间。

    立即生效

  5. 通知配置配置向导页,设置报警参数及联系人,然后单击完成

    image

    配置项

    描述

    默认值

    超时报警

    任务执行超时是否发送告警。

    开启

    超时时间

    任务执行超时的时间,按照业务自行设定。

    7200

    超时终止

    任务执行超过指定时间是否自动停止,防止把下一次调度卡住。

    关闭

    成功通知

    任务执行成功是否通知给联系人,一般天级别比较重要的任务设置。

    关闭

    失败报警

    任务执行失败是否告警。

    开启

    连续失败次数

    任务连续失败指定次数才告警。

    1

    无可用机器报警

    任务调度的时候没有可用执行器是否告警。

    开启

    通知方式

    短信、webhook、邮件、电话。

    通知对象

    集成云监控联系人,需要去云监控配置联系人并激活联系方式。

    如果选用webhook告警(钉钉/企业微信/飞书),需要通过公网外发,所以需要您的VPC网络绑定公网NAT网关,如下图:

    image

编辑调度任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 单击目标任务操作列的编辑。在编辑任务面板中修改基本配置定时配置通知配置,然后单击完成

删除调度任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 单击目标任务操作 > 更多下的删除。在删除对话框中单击删除

导入任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 单击导入任务,在导入任务对话框中,选择相同任务覆盖或者跳过,是否自动创建App选择文件上传后,单击确定

导出任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 单击导出任务,在导出任务对话框中,选择导出任务的应用名称,单击确定

批量启用任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 勾选需要批量启用的任务,单击批量启用任务。在批量启用任务对话框中,单击确定

批量禁用任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 勾选需要批量禁用的任务,单击批量禁用任务。在批量禁用任务对话框中,单击确定

批量删除任务

重要

任务删除后将不可恢复!

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 勾选需要批量删除的任务,单击批量删除任务。在批量删除任务对话框中,单击确定

运行一次调度任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 单击目标任务操作列下的运行一次。在手动执行任务对话框中,指定执行机器和任务参数,单击确定

复制调度任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 单击目标任务操作 > 更多下的复制。在复制任务面板中,填写基本配置定时配置通知配置,然后单击完成

禁用调度任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 单击目标任务操作 > 更多下的禁用。在禁用对话框中,单击禁用

查看调度记录

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 单击目标任务操作 > 更多下的调度记录。查看任务调度执行记录。

重刷任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 单击目标任务操作 > 更多下的重刷任务。在重刷任务面板中,选择起止日期数据时间,然后单击确定

指定机器

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的任务管理

  4. 单击目标任务操作 > 更多下的指定机器,在指定机器面板中,选择指定类型下拉框为地址或者标签后,指定机器,单击确定。

    说明

    机器转移:开启机器转移开关,当指定机器全部下线时任务可以调度到非指定机器。

GLUE任务如何配置脚本内容

创建GLUE任务

创建调度任务时,任务类型选择GLUE(xxx),并在脚本内容输入框配置即可。

image

更新GLUE脚本内容

实例引擎版本 < 2.2.2

您可在编辑任务页进行脚本编辑。

image

实例引擎版本 >= 2.2.2

支持脚本版本管理,编辑任务页的脚本编辑框已禁用,请在目标任务的运行模式列单击编辑脚本,并在打开的编辑脚本页面进行编辑。

image

脚本内容版本对比(限 2.2.2+ 版本使用)

在目标任务的运行模式列单击编辑脚本,然后打开编辑脚本页面右上角版本对比开关,并选择需要对比的版本进行对比。

image

HTTP任务操作流程

前提条件

如当前引擎版本低于2.2.3,需升级至2.2.3及以上版本。

重要

升级过程实例将发生重启。

创建HTTP任务

  1. 登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。

  2. 在左侧导航栏,选择任务调度 > XXL-JOB

  3. 单击进入目标实例,在左侧导航栏的应用管理,然后单击创建应用,应用类型选择Http应用,然后单击确定

  4. 在左侧导航栏选择任务管理,然后单击创建任务,关联应用选择步骤3创建的应用,任务类型选择HTTP。image

  5. 配置HTTP任务的请求域名、Path、请求方式、超时时间。image

  6. 配置HTTP任务的请求参数,根据需求填写Header、Query、Body。image.png

  7. 配置HTTP任务响应定义,包括成功响应解析模式与成功结果解析模式,解析模式提供响应码、响应体与响应Body三种解析类型。image.png

  8. 配置HTTP任务的失败重试,包括失败重试次数、重试间隔时间。当失败重试次数大于0,即任务失败后需要进行重试时,还可配置重试域名和接口Path,使任务失败后请求该域名和Path。image.png

执行HTTP任务

HTTP任务创建完成后,可运行一次任务,并查看任务的执行记录详情和日志。

任务成功示例

image

调度详情-基本信息

image

调度详情-输入输出

image

日志记录

image

任务失败示例

image

调度详情-基本信息

image

调度详情-输入输出

image

日志记录

image

Cron表达式

Cron的表达式为:秒分时 日月周[年]

为了帮助您理解,下面介绍一些常用的Cron表达式示例。

Contab表达式

说明

0 */1 * * * ?

每隔1分钟触发一次。

0 0 5-15 * * ?

每天5:00~15:00整点触发。

0 0/3 * * * ?

每隔3分钟触发一次。

0 0-5 14 * * ?

每天14:00~14:05期间每隔1分钟触发一次。

0 0/5 14 * * ?

每天14:00~14:55期间每隔5分钟触发一次。

0 0/5 14,18 * * ?

每天14:00~14:5518:00~18:55两个时间段内每5分钟触发一次。

0 0/30 9-17 * * ?

每天9:00~17:00内每半小时触发一次。

0 0 10,14,16 * * ?

每天10:00、14:0016:00触发。

0 0 12 ? * WED

每周三12:00触发。

0 0 17 ? * TUES,THUR,SAT

每周二、周四、周六17:00触发。

0 10,44 14 ? 3 WED

每年3月的每周三的14:1014:44触发。

0 15 10 ? * MON-FRI

周一至周五的上午10:15触发。

0 0 23 L * ?

每月最后一天23:00触发。

0 15 10 L * ?

每月最后一天10:15触发。

0 15 10 ? * 6L

每月最后一个周五10:15触发。

0 15 10 * * ? 2005

2005年的每天10:15触发。

0 15 10 ? * 6L 2002-2005

2002年~2005年的每月的最后一个周五上午10:15触发。

0 15 10 ? * 6#3

每月的第三个周五10:15触发。