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

请求 url 前缀为 /api

鉴权 API

获取 AccessToken

url: login

方法:POST

参数类型:application/json

参数列表:

属性名类型是否必填缺省值描述
usernameStringAPI 鉴权用户名
passwordStringAPI 鉴权密码

响应体:

属性名类型描述
accessTokenStringAPI 鉴权 token

示例:

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

响应体:

  1. {"accessToken":"some_token"}

应用 API

发布应用

url:app

方法:POST

参数类型:application/json

参数列表:

属性名类型是否必填缺省值描述
appNameString作业应用名称
appURLString作业应用所在路径
cpuCountdouble1作业应用启动所需要的 CPU 数量
memoryMBdouble128作业应用启动所需要的内存 MB
bootstrapScriptString启动脚本
appCacheEnablebooleantrue每次执行作业时是否从缓存中读取应用
eventTraceSamplingCountint0(不采样)常驻作业事件采样率统计条数

参数详细说明:

appName:

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

appURL:

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

bootstrapScript:

如:bin\start.sh

appCacheEnable:

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

eventTraceSamplingCount:

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

示例:

  1. 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

参数列表:

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

示例:

  1. 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

参数列表:

属性名类型是否必填缺省值描述
appNameString作业应用名称
cpuCountdouble单片作业所需要的 CPU 数量,最小值为 0.001
memoryMBdouble单片作业所需要的内存 MB,最小值为 1
jobExecutionTypeEnum作业执行类型。TRANSIENT 为瞬时作业,DAEMON 为常驻作业
jobNameString作业名称
cronStringcron 表达式,用于配置作业触发时间
shardingTotalCountint作业分片总数
shardingItemParametersString自定义分片参数
jobParameterString作业自定义参数
failoverbooleanfalse是否开启失效转移
misfirebooleanfalse是否开启错过任务重新执行
jobExecutorServiceHandlerTypebooleanfalse作业线程池处理策略
jobErrorHandlerTypebooleanfalse作业错误处理策略
descriptionString作业描述信息
propsProperties作业属性配置信息

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

示例:

  1. 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

参数:同注册作业

示例:

  1. 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

参数:作业名称

示例:

  1. 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 而非定时的触发作业。目前仅对瞬时作业生效。

示例:

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