Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

增加SDK,以支持应用直接调用api维护任务;目前仅支持JAVA任务 #356

Open
wants to merge 10 commits into
base: 2.1.2-release
Choose a base branch
from

Conversation

LockiJiang
Copy link

@LockiJiang LockiJiang commented Oct 16, 2020

前期准备

登录调度中心 > 用户管理,获取对应用户的AccessKey和SecretKey
图片
如果AccessKey和SecretKey未生成,点击“重置”按钮生成新的AccessKey和SecretKey

一、非springboot应用

1、引用依赖

<dependency>
	<groupId>com.wugui</groupId>
	<artifactId>datax-web-sdk</artifactId>
	<version>2.1.2</version>
</dependency>

2、创建客户端

JobClient client = new JobClient();
//设置调度中心访问地址,必填
client.setWebUrl("http://127.0.0.1:8080");
//设置AccessKey,必填
client.setAccessKey("P0ru0c0Y");
//设置SecretKey,必填
client.setSecretKey("6cbd77918c566e5345c5189db9689893f8c28c47");
//新增任务API地址,非必填,默认/api/job/add
client.setAdd("/api/job/add");
//更新任务API地址,非必填,默认/api/job/update
client.setUpdate("/api/job/update");
//启用任务API地址,非必填,默认/api/job/start
client.setStart("/api/job/start");
//停用任务API地址,非必填,默认/api/job/stop
client.setStop("/api/job/stop");
//删除任务API地址,非必填,默认/api/job/remove
client.setDelete("/api/job/remove");
//查看任务详情API地址,非必填,默认/api/job/loadJob
client.setLoad("/api/job/loadJob");
//查看任务日志API地址,非必填,默认/api/log/pageList
client.setLog("/api/log/pageList");

3、调用接口维护任务,参数及返回值见附录Ⅰ

//创建任务
client.createJob(jobInfo)
//修改任务
client.updateJob(jobInfo)
//启用任务
client.startJob("1")
//停用任务
client.stopJob("1")
//删除任务
client.deleteJob("1")
//查看任务详情
client.getJob("1")
//查看任务日志
client.jobLog("1")

二、springboot应用

1、引用依赖

<dependency>
	<groupId>com.wugui</groupId>
	<artifactId>datax-web-sdk-spring-boot-starter</artifactId>
	<version>2.1.2</version>
</dependency>

2、application.yml配置参数

datax:
  web:
    admin:
      enabled: true #是否自动装配
      url: http://127.0.0.1:8080 #设置调度中心访问地址,必填
      accesskey: P0ru0c0Y #设置AccessKey,必填
      secretkey: 6cbd77918c566e5345c5189db9689893f8c28c47 #设置SecretKey,必填
      api:
        add: /api/job/add #新增任务API地址,非必填,默认/api/job/add
        update: /api/job/update #更新任务API地址,非必填,默认/api/job/update
        start: /api/job/start #启用任务API地址,非必填,默认/api/job/start
        stop: /api/job/stop #停用任务API地址,非必填,默认/api/job/stop
        delete: /api/job/remove #删除任务API地址,非必填,默认/api/job/remove
        load-job: /api/job/loadJob #查看任务详情API地址,非必填,默认/api/job/loadJob
        log: /api/log/pageList #查看任务日志API地址,非必填,默认/api/log/pageList

3、引入客户端

@Autowired
private JobClient jobClient;

4、调用接口维护任务,参数及返回值见附录Ⅰ

//创建任务
jobClient.createJob(jobInfo)
//修改任务
jobClient.updateJob(jobInfo)
//启用任务
jobClient.startJob("1")
//停用任务
jobClient.stopJob("1")
//删除任务
jobClient.deleteJob("1")
//查看任务详情
jobClient.getJob("1")
//查看任务日志
jobClient.jobLog("1")

附录Ⅰ

1、创建任务 - JobClient.createJob(JobInfo jobInfo)

参数名称 参数类型 参数说明
jobGroup int 执行器主键ID
jobCron String 任务执行CRON表达式,必填
jobDesc String 任务名称,必填
projectId String 所属项目主键ID,必填
alarmEmail String 邮件报警地址
executorRouteStrategy ExecutorRouteStrategyEnum 执行器路由策略,默认ExecutorRouteStrategyEnum.FIRST
executorHandler String 任务Handler名称,执行器中执行具体任务的javabean,必填
executorParam String 任务参数
executorBlockStrategy ExecutorBlockStrategyEnum 阻塞处理策略,默认ExecutorBlockStrategyEnum.SERIAL_EXECUTION
executorTimeout int 任务执行超时时间,单位秒;为0时不设置超时
executorFailRetryCount int 失败重试次数
返回值名称 返回值类型 返回值说明
isSuccess boolean 请求是否成功 true/false
msg String 请求失败时的异常信息
content String 请求成功时返回任务主键ID

2、更新任务 - JobClient.updateJob(JobInfo jobInfo)

参数名称 参数类型 参数说明
id int 任务主键ID,必填
jobGroup int 执行器主键ID
jobCron String 任务执行CRON表达式,必填
jobDesc String 任务名称,必填
projectId String 所属项目主键ID,必填
alarmEmail String 邮件报警地址
executorRouteStrategy ExecutorRouteStrategyEnum 执行器路由策略,默认ExecutorRouteStrategyEnum.FIRST
executorHandler String 任务Handler名称,执行器中执行具体任务的javabean,必填
executorParam String 任务参数
executorBlockStrategy ExecutorBlockStrategyEnum 阻塞处理策略,默认ExecutorBlockStrategyEnum.SERIAL_EXECUTION
executorTimeout int 任务执行超时时间,单位秒;为0时不设置超时
executorFailRetryCount int 失败重试次数
返回值名称 返回值类型 返回值说明
isSuccess boolean 请求是否成功 true/false
msg String 请求失败时的异常信息

3、启用JobClient.startJob(String id)、停用JobClient.stopJob(String id)、删除任务JobClient.deleteJob(String id)

参数名称 参数类型 参数说明
id String 任务主键ID,必填
返回值名称 返回值类型 返回值说明
isSuccess boolean 请求是否成功 true/false
msg String 请求失败时的异常信息

4、查看任务详情 - 启用JobClient.getJob(String id)

参数名称 参数类型 参数说明
id String 任务主键ID,必填
返回值名称 返回值类型 返回值说明
id int 任务主键ID
jobGroup int 执行器主键ID
jobCron String 任务执行CRON表达式
jobDesc String 任务名称
addTime Date 创建时间
updateTime Date 修改时间
userId String 创建时间
projectId String 所属项目主键ID
alarmEmail String 邮件报警地址
executorRouteStrategy ExecutorRouteStrategyEnum 执行器路由策略
executorHandler String 任务Handler名称,执行器中执行具体任务的javabean
executorParam String 任务参数
executorBlockStrategy ExecutorBlockStrategyEnum 阻塞处理策略
executorTimeout int 任务执行超时时间,单位秒
executorFailRetryCount int 失败重试次数
glueType String 任务类型
triggerStatus int 任务是否启用:0否 1是
triggerLastTime long 上次调度时间,未启用为0
triggerNextTime long 下次调度时间,未启用为0

5、查看任务日志 - 启用JobClient.jobLog(String id)

参数名称 参数类型 参数说明
id String 任务主键ID,必填
返回值名称 返回值类型 返回值说明
id long 日志主键ID
jobGroup int 执行器主键ID
jobId String 任务主键ID
jobDesc String 任务名称
executorAddress String 执行器地址
executorHandler String 任务Handler名称,执行器中执行具体任务的javabean
executorParam String 任务参数
executorShardingParam String 分片执行参数
executorFailRetryCount int 失败重试次数
triggerTime Date 任务触发时间
triggerCode int 任务触发状态,200为触发成功
triggerMsg String 任务触发描述信息
handleTime Date 任务执行完成时间
handleCode int 任务执行完成状态,200为执行成功
handleMsg String 任务执行描述信息
alarmStatus int 任务失败告警状态:0-默认、-1=锁定状态、1-无需告警、2-告警成功、3-告警失败
processId String 任务执行的进程ID
maxId Long 增量表max id

@WeiYe-Jing WeiYe-Jing self-requested a review October 18, 2020 10:00
@WeiYe-Jing
Copy link
Owner

您好,可以留个联系方式吗,和您讨论下这个功能的需求,谢谢!

@LockiJiang
Copy link
Author

前期准备

登录调度中心 > 用户管理,获取对应用户的AccessKey和SecretKey
图片
如果AccessKey和SecretKey未生成,点击“重置”按钮生成新的AccessKey和SecretKey

一、非springboot应用

1、引用依赖

<dependency>
	<groupId>com.wugui</groupId>
	<artifactId>datax-web-sdk</artifactId>
	<version>2.1.2</version>
</dependency>

2、创建客户端

JobClient client = new JobClient();
//设置调度中心访问地址,必填
client.setWebUrl("http://127.0.0.1:8080");
//设置AccessKey,必填
client.setAccessKey("P0ru0c0Y");
//设置SecretKey,必填
client.setSecretKey("6cbd77918c566e5345c5189db9689893f8c28c47");
//新增任务API地址,非必填,默认/api/job/add
client.setAdd("/api/job/add");
//更新任务API地址,非必填,默认/api/job/update
client.setUpdate("/api/job/update");
//启用任务API地址,非必填,默认/api/job/start
client.setStart("/api/job/start");
//停用任务API地址,非必填,默认/api/job/stop
client.setStop("/api/job/stop");
//删除任务API地址,非必填,默认/api/job/remove
client.setDelete("/api/job/remove");
//查看任务详情API地址,非必填,默认/api/job/loadJob
client.setLoad("/api/job/loadJob");
//查看任务日志API地址,非必填,默认/api/log/pageList
client.setLog("/api/log/pageList");

3、调用接口维护任务,参数及返回值见附录Ⅰ

//创建任务
client.createJob(jobInfo)
//修改任务
client.updateJob(jobInfo)
//启用任务
client.startJob("1")
//停用任务
client.stopJob("1")
//删除任务
client.deleteJob("1")
//查看任务详情
client.getJob("1")
//查看任务日志
client.jobLog("1")

二、springboot应用

1、引用依赖

<dependency>
	<groupId>com.wugui</groupId>
	<artifactId>datax-web-sdk-spring-boot-starter</artifactId>
	<version>2.1.2</version>
</dependency>

2、application.yml配置参数

datax:
  web:
    admin:
      enabled: true #是否自动装配
      url: http://127.0.0.1:8080 #设置调度中心访问地址,必填
      accesskey: P0ru0c0Y #设置AccessKey,必填
      secretkey: 6cbd77918c566e5345c5189db9689893f8c28c47 #设置SecretKey,必填
      api:
        add: /api/job/add #新增任务API地址,非必填,默认/api/job/add
        update: /api/job/update #更新任务API地址,非必填,默认/api/job/update
        start: /api/job/start #启用任务API地址,非必填,默认/api/job/start
        stop: /api/job/stop #停用任务API地址,非必填,默认/api/job/stop
        delete: /api/job/remove #删除任务API地址,非必填,默认/api/job/remove
        load-job: /api/job/loadJob #查看任务详情API地址,非必填,默认/api/job/loadJob
        log: /api/log/pageList #查看任务日志API地址,非必填,默认/api/log/pageList

3、引入客户端

@Autowired
private JobClient jobClient;

4、调用接口维护任务,参数及返回值见附录Ⅰ

//创建任务
jobClient.createJob(jobInfo)
//修改任务
jobClient.updateJob(jobInfo)
//启用任务
jobClient.startJob("1")
//停用任务
jobClient.stopJob("1")
//删除任务
jobClient.deleteJob("1")
//查看任务详情
jobClient.getJob("1")
//查看任务日志
jobClient.jobLog("1")

附录Ⅰ

1、创建任务 - JobClient.createJob(JobInfo jobInfo)

参数名称 参数类型 参数说明
jobGroup int 执行器主键ID
jobCron String 任务执行CRON表达式,必填
jobDesc String 任务名称,必填
projectId String 所属项目主键ID,必填
alarmEmail String 邮件报警地址
executorRouteStrategy ExecutorRouteStrategyEnum 执行器路由策略,默认ExecutorRouteStrategyEnum.FIRST
executorHandler String 任务Handler名称,执行器中执行具体任务的javabean,必填
executorParam String 任务参数
executorBlockStrategy ExecutorBlockStrategyEnum 阻塞处理策略,默认ExecutorBlockStrategyEnum.SERIAL_EXECUTION
executorTimeout int 任务执行超时时间,单位秒;为0时不设置超时
executorFailRetryCount int 失败重试次数
返回值名称 返回值类型 返回值说明
isSuccess boolean 请求是否成功 true/false
msg String 请求失败时的异常信息
content String 请求成功时返回任务主键ID

2、更新任务 - JobClient.updateJob(JobInfo jobInfo)

参数名称 参数类型 参数说明
id int 任务主键ID,必填
jobGroup int 执行器主键ID
jobCron String 任务执行CRON表达式,必填
jobDesc String 任务名称,必填
projectId String 所属项目主键ID,必填
alarmEmail String 邮件报警地址
executorRouteStrategy ExecutorRouteStrategyEnum 执行器路由策略,默认ExecutorRouteStrategyEnum.FIRST
executorHandler String 任务Handler名称,执行器中执行具体任务的javabean,必填
executorParam String 任务参数
executorBlockStrategy ExecutorBlockStrategyEnum 阻塞处理策略,默认ExecutorBlockStrategyEnum.SERIAL_EXECUTION
executorTimeout int 任务执行超时时间,单位秒;为0时不设置超时
executorFailRetryCount int 失败重试次数
返回值名称 返回值类型 返回值说明
isSuccess boolean 请求是否成功 true/false
msg String 请求失败时的异常信息

3、启用JobClient.startJob(String id)、停用JobClient.stopJob(String id)、删除任务JobClient.deleteJob(String id)

参数名称 参数类型 参数说明
id String 任务主键ID,必填
返回值名称 返回值类型 返回值说明
isSuccess boolean 请求是否成功 true/false
msg String 请求失败时的异常信息

4、查看任务详情 - 启用JobClient.getJob(String id)

参数名称 参数类型 参数说明
id String 任务主键ID,必填
返回值名称 返回值类型 返回值说明
id int 任务主键ID
jobGroup int 执行器主键ID
jobCron String 任务执行CRON表达式
jobDesc String 任务名称
addTime Date 创建时间
updateTime Date 修改时间
userId String 创建时间
projectId String 所属项目主键ID
alarmEmail String 邮件报警地址
executorRouteStrategy ExecutorRouteStrategyEnum 执行器路由策略
executorHandler String 任务Handler名称,执行器中执行具体任务的javabean
executorParam String 任务参数
executorBlockStrategy ExecutorBlockStrategyEnum 阻塞处理策略
executorTimeout int 任务执行超时时间,单位秒
executorFailRetryCount int 失败重试次数
glueType String 任务类型
triggerStatus int 任务是否启用:0否 1是
triggerLastTime long 上次调度时间,未启用为0
triggerNextTime long 下次调度时间,未启用为0

5、查看任务日志 - 启用JobClient.jobLog(String id)

参数名称 参数类型 参数说明
id String 任务主键ID,必填
返回值名称 返回值类型 返回值说明
id long 日志主键ID
jobGroup int 执行器主键ID
jobId String 任务主键ID
jobDesc String 任务名称
executorAddress String 执行器地址
executorHandler String 任务Handler名称,执行器中执行具体任务的javabean
executorParam String 任务参数
executorShardingParam String 分片执行参数
executorFailRetryCount int 失败重试次数
triggerTime Date 任务触发时间
triggerCode int 任务触发状态,200为触发成功
triggerMsg String 任务触发描述信息
handleTime Date 任务执行完成时间
handleCode int 任务执行完成状态,200为执行成功
handleMsg String 任务执行描述信息
alarmStatus int 任务失败告警状态:0-默认、-1=锁定状态、1-无需告警、2-告警成功、3-告警失败
processId String 任务执行的进程ID
maxId Long 增量表max id

2021.04.25更新
增加神通数据库oscar支持,后续将在dev分支提交

@zhiweio
Copy link

zhiweio commented Jun 8, 2022

请问这个 PR 现在什么进度了,编写 data pipeline 任务时需要能够支持 SDK/HTTP API 的提交和管理任务方式
这是个非常实用的功能,很期待

@LockiJiang
Copy link
Author

请问这个 PR 现在什么进度了,编写 data pipeline 任务时需要能够支持 SDK/HTTP API 的提交和管理任务方式 这是个非常实用的功能,很期待

https://github.com/LockiJiang/datax-web/tree/v2.1.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants