SchedulerX支持Serverless的HTTP任务,包含GET和POST两种方法,无需依赖Client,在控制台配置完即可生效使用。
使用限制
- 目前只支持GET、POST,后续根据用户需求陆续开通其他方法
- HTTP请求返回结果必须是JSON格式,服务需要解析指定key比较本次请求是否成功
- 不支持秒级任务,支持到分钟级别
- 请求URL需要有公网权限,如果是
IP:port
,需要机器开通公网权限
GET
使用HTTP的GET方法,需要在客户端中添加配置,然后在控制台中创建任务。
POST
使用HTTP的POST方法,需要在客户端中添加配置,然后在控制台中创建任务。
如何获取任务基本信息
HTTP任务,会将任务基本信息打入header中,如果想获取任务的基本信息,可以在客户端的pom.xml中增加一个以下依赖。
<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx2-common</artifactId>
<version>1.1.5-SNAPSHOT</version>
</dependency>
以GET方法为例,通过以下方式获取任务基本信息。
import com.alibaba.schedulerx.common.constants.CommonConstants;
@GET
@Path("hi")
@Produces(MediaType.APPLICATION_JSON)
public RestResult hi(@QueryParam("user") String user,
@HeaderParam(CommonConstants.JOB_ID_HEADER) String jobId,
@HeaderParam(CommonConstants.JOB_NAME_HEADER) String jobName) {
TestVo vo = new TestVo();
vo.setName("armon");
System.out.println("user=" + user + ", jobId=" + jobId + ", jobName=" + jobName);
RestResult result = new RestResult();
result.setCode(200);
result.setData(vo);
return result;
}
可以获取的任务基本信息如下:
CommonConstants常量 | key | value描述 |
---|---|---|
JOB_ID_HEADER | schedulerx-jobId | 任务ID |
JOB_NAME_HEADER | schedulerx-jobName | 任务名,需要引文,因为header不支持中文 |
SCHEDULE_TIMESTAMP_HEADER | schedulerx-scheduleTimestamp | 调度时间的时间戳 |
DATA_TIMESTAMP_HEADER | schedulerx-dataTimestamp | 数据时间的时间戳 |
GROUP_ID_HEADER | schedulerx-groupId | 应用ID |
USER_HEADER | schedulerx-user | 用户名 |
MAX_ATTEMPT_HEADER | schedulerx-maxAttempt | 实例最大重试次数 |
ATTEMPT_HEADER | schedulerx-attempt | 实例当前重试次数 |
JOB_PARAMETERS_HEADER | schedulerx-jobParameters | 任务参数 |
INSTANCE_PARAMETERS_HEADER | schedulerx-instanceParameters | 任务实例参数,需要API触发 |
结果验证
HTTP任务执行结果在执行列表页可以进行查询,成功结果可参见GET中的结果。
如果失败可以单击详情查看具体失败原因,下面列举典型的失败结果。
- 返回值和期望不相同
- 执行超时
报警
HTTP任务支持错误报警,针对上述超时以及返回值不符合预期用户可以在创建任务时设置报警信息,接收相应的报警信息。

在文档使用中是否遇到以下问题
更多建议
匿名提交