ElasticJob-Cloud 提供应用发布及作业注册等 RESTful API, 可通过 curl 操作。

请求 url 前缀为 /api

鉴权 API

获取 AccessToken

url: login

方法:POST

参数类型:application/json

参数列表:

属性名 类型 是否必填 缺省值 描述
username String API 鉴权用户名
password String API 鉴权密码

响应体:

属性名 类型 描述
accessToken String API 鉴权 token

示例:

curl -H "Content-Type: application/json" -X POST http://elasticjob_cloud_host:8899/api/login -d '{"username": "root", "password": "pwd"}'

响应体:

{"accessToken":"some_token"}

应用 API

发布应用

url:app

方法:POST

参数类型:application/json

参数列表:

属性名 类型 是否必填 缺省值 描述
appName String 作业应用名称
appURL String 作业应用所在路径
cpuCount double 1 作业应用启动所需要的 CPU 数量
memoryMB double 128 作业应用启动所需要的内存 MB
bootstrapScript String 启动脚本
appCacheEnable boolean true 每次执行作业时是否从缓存中读取应用
eventTraceSamplingCount int 0(不采样) 常驻作业事件采样率统计条数

参数详细说明:

appName:

为 ElasticJob-Cloud 的作业应用唯一标识。

appURL:

必须提供可以通过网络访问的路径。

bootstrapScript:

如:bin\start.sh

appCacheEnable:

禁用则每次执行任务均从应用仓库下载应用至本地。

eventTraceSamplingCount:

为避免数据量过大,可对频繁调度的常驻作业配置采样率,即作业每执行 N 次,才会记录作业执行及追踪相关数据。

示例:

curl -l -H "Content-type: application/json" -X POST -d '{"appName":"my_app","appURL":"http://app_host:8080/my-job.tar.gz","cpuCount":0.1,"memoryMB":64.0,"bootstrapScript":"bin/start.sh","appCacheEnable":true,"eventTraceSamplingCount":0}' http://elastic_job_cloud_host:8899/api/app

修改应用配置

url:app

方法:PUT

参数类型:application/json

参数列表:

属性名 类型 是否必填 缺省值 描述
appName String 作业应用名称
appCacheEnable boolean true 每次执行作业时是否从缓存中读取应用
eventTraceSamplingCount int 0(不采样) 常驻作业事件采样率统计条数

示例:

curl -l -H "Content-type: application/json" -X PUT -d '{"appName":"my_app","appCacheEnable":true}' http://elastic_job_cloud_host:8899/api/app

作业 API

注册作业

url:job/register

方法:POST

参数类型:application/json

参数列表:

属性名 类型 是否必填 缺省值 描述
appName String 作业应用名称
cpuCount double 单片作业所需要的 CPU 数量,最小值为 0.001
memoryMB double 单片作业所需要的内存 MB,最小值为 1
jobExecutionType Enum 作业执行类型。TRANSIENT 为瞬时作业,DAEMON 为常驻作业
jobName String 作业名称
cron String cron 表达式,用于配置作业触发时间
shardingTotalCount int 作业分片总数
shardingItemParameters String 自定义分片参数
jobParameter String 作业自定义参数
failover boolean false 是否开启失效转移
misfire boolean false 是否开启错过任务重新执行
jobExecutorServiceHandlerType boolean false 作业线程池处理策略
jobErrorHandlerType boolean false 作业错误处理策略
description String 作业描述信息
props Properties 作业属性配置信息

使用脚本类型的瞬时作业可直接将脚本上传至 appURL,而无需打成 tar 包。 如果只有单个脚本文件可无需压缩。 如是复杂脚本应用,仍可上传 tar 包,支持各种常见压缩格式。

示例:

curl -l -H "Content-type: application/json" -X POST -d '{"appName":"my_app","cpuCount":0.1,"memoryMB":64.0,"jobExecutionType":"TRANSIENT","jobName":"my_job","cron":"0/5 * * * * ?","shardingTotalCount":5,"failover":true,"misfire":true}' http://elastic_job_cloud_host:8899/api/job/register

修改作业配置

url:job/update

方法:PUT

参数类型:application/json

参数:同注册作业

示例:

curl -l -H "Content-type: application/json" -X PUT -d '{"appName":"my_app","jobName":"my_job","cpuCount":0.1,"memoryMB":64.0,"jobExecutionType":"TRANSIENT","cron":"0/5 * * * * ?","shardingTotalCount":5,"failover":true,"misfire":true}' http://elastic_job_cloud_host:8899/api/job/update

注销作业

url:job/deregister

方法:DELETE

参数类型:application/json

参数:作业名称

示例:

curl -l -H "Content-type: application/json" -X DELETE -d 'my_job' http://elastic_job_cloud_host:8899/api/job/deregister

触发一次作业

url:job/trigger

方法:POST

参数类型:application/json

参数:作业名称

说明:即事件驱动,通过调用 API 而非定时的触发作业。目前仅对瞬时作业生效。

示例:

curl -l -H "Content-type: application/json" -X POST -d 'my_job' http://elastic_job_cloud_host:8899/api/job/trigger