HTTP任务

更新时间:

HTTP类型任务通过HTTP/HTTPS协议调度执行任务,无需接入SDK,即可实现跨语言、跨平台的任务调度。支持Kubernetes环境接入与非Kubernetes环境接入两种接入方式。

前提条件

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

重要

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

优势

  • 存量业务零改造接入。

  • 多语言统一解决方案。

  • 支持AI Agent和工作流场景。

HTTP任务接入方式

Kubernetes环境接入

Kubernetes环境接入是指将Kubernetes集群中的Service与应用进行绑定,以支持HTTP任务的调度。绑定完成后,该应用下的所有任务可共享对应Service关联的Pod资源。

当用户在应用中配置K8s Service后,调度中心会自动获取相关Pod实例信息。任务配置时仅需指定HTTP请求路径,无需设置具体Pod地址。在定时触发执行时,调度中心依据预设的路由策略向目标Pod发送HTTP请求。任务执行结果将被记录,并推送至SLS日志系统,便于后续查看与分析。

image.png

调度中心通过服务发现线程周期性检测Pod的扩缩容事件及异常状态,自动将最新的Pod实例信息同步至Pod管理器,实现对Pod集群的动态监控与状态维护。

Pod管理器负责维护Pod的网络地址与健康状态,并支持多种任务路由策略。除单实例路由外,还提供广播分片路由模式,在触发一次任务时,可向目标服务下的所有Pod实例广播请求。调度中心在HTTP请求头中注入分片上下文信息(包括分片索引、分片总数等参数),以支持用户在任务执行过程中进行细粒度的逻辑控制与数据划分。

Kubernetes环境接入

在非Kubernetes环境中,通过在应用层面配置HTTP目标域名,实现应用级的统一域名管理与路由策略控制。当应用绑定多个域名后,其下属所有任务将共享这些域名配置。

用户在应用层级进行域名绑定,调度中心通过域名管理器维护域名信息。任务创建时仅需配置请求路径,无需指定域名。任务触发时,调度中心依据预设的路由策略自动选择合适的域名,并将请求发送至网关。网关完成鉴权、流量控制及负载均衡等处理后,转发请求至目标服务,执行结果最终同步至SLS日志服务。

image.png

域名管理器负责维护域名信息,支持域名的添加、删除、修改操作及标签路由配置,可根据业务标签实现流量分发,并支持多种路由策略,以满足不同的调度与负载均衡需求。

接入方式对比

对比维度

Kubernetes环境:通过Service接入

Kubernetes环境:通过网关接入

接入模式

基于Kubernetes Service直接访问后端Pod实例

通过统一网关代理请求,转发至目标域名服务

服务发现机制

主动监听Endpoint变化,动态维护Pod列表

不支持服务发现,不感知后端节点状态

执行目标粒度

可调度到具体Pod IP和端口,实现点对点直连调用

请求发送至网关,由网关完成内部负载均衡和实例路由,调度中心无法感知真实后端节点

路由策略

支持单实例路由策略和广播分片

不支持路由策略,使用网关的路由策略

广播分片

原生支持广播分片模式,适用于大规模并行批处理场景

不支持广播分片,所有任务均为单点执行,无法实现跨节点协同处理

健康状态管理

实时同步Endpoint状态,自动剔除未就绪或已终止的Pod

依赖用户手动维护域名可用性

扩展性与灵活性

适配云原生环境,支持弹性伸缩、滚动发布等场景

更适合传统架构或异构系统集成,兼容性强,易于与现有网关体系对接

应用场景

容器化微服务、跑批作业分片执行、高并发定时任务

非容器环境、混合部署架构、遗留系统接入、需统一网关治理的企业级API调度

接入步骤

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

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

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

  4. 接入HTTP执行器,具体步骤参见HTTP应用接入执行器

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

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

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

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

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

测试HTTP任务

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

任务成功示例

image.png

调度详情-基本信息

image.png

调度详情-输入输出

image.png

日志记录

image.png

任务失败示例

image.png

调度详情-基本信息

image.png

调度详情-输入输出

image.png

日志记录

image.png

HTTP任务请求头

MSE-XXLJOB在执行HTTP任务时,会向请求Header中添加以下系统参数:

名称

含义

示例值

schedulerx-appId

应用ID

12

schedulerx-jobId

任务ID

35

schedulerx-jobName

任务名称

http-test-job

schedulerx-scheduleTimestamp

调度时间戳(毫秒)

1760164985000

schedulerx-dataTimestamp

数据时间(毫秒)

1760164980000

schedulerx-user

用户信息

1344371792

schedulerx-maxAttempt

最大重试次数

3

schedulerx-attempt

当前重试次数

1

schedulerx-jobExecutionId

任务执行ID

1417474640397221891

schedulerx-logId

分片ID(广播分片)

1417474640531439619

schedulerx-shardingIndex

分片序号(广播分片)

0

schedulerx-shardingTotal

分片总数(广播分片)

3