dolphinscheduler接口教程

上一篇写了利用DS的一些接口来实现导入-上线工作流,那么DS的接口应该怎么找呢,在此小小的总结一篇。
接下来以手动执行一次工作流为例。

寻找接口

首先需要手动操作,要执行工作流就要到工作流定义页面执行。
在这里插入图片描述

就在这里进入F12 – 网络,然后去点一个任务的运行

在这里插入图片描述

就能看到接口,15410101436864 就是上面工作流的code

在这里插入图片描述

把工作流执行完

在这里插入图片描述

URL

继续观察接口。发现东西增加了。
在这里插入图片描述

请求URL 和请求方法就是有用信息。

start_process_url = 'http://IP:12345/dolphinscheduler/projects/{project_id}/executors/start-process-instance'
# 请求方法是POST

请求参数

接着找请求参数

在这里插入图片描述

把这些东西拿出来,就是请求体

data = {
        'processDefinitionCode': process_code,
        'failureStrategy': 'CONTINUE',
        'warningType': 'FAILURE',
        'warningGroupId': 2,
        'execType': 'START_PROCESS',
        'startNodeList': [],
        'taskDependType': 'TASK_POST',
        'complementDependentMode': 'OFF_MODE',
        'runMode': 'RUN_MODE_SERIAL',
        'processInstancePriority': 'MEDIUM',
        'workerGroup': 'default',
        'environmentCode': '',
        'startParams': '',
        'expectedParallelismNumber': '',
        'dryRun': 0,
        'scheduleTime':{"complementStartDate": "2024-10-25 00:00:00", "complementEndDate": "2024-10-25 00:00:00"}
    }

测试接口

找到之后就测试一下接口是否正常可用 python 或 foxapi之类的工具,head token 在上一篇已经讲过了,不再赘述。

start_process_url = 'http://IP:12345/dolphinscheduler/projects/{project_id}/executors/start-process-instance'

project_id = ''
token

headers = {
    'Accept': 'application/json',
    'token': token
}

def start_process(process_code):
    url = start_process_url.format(project_id=project_id)
    data = {
        'processDefinitionCode': process_code,
        'failureStrategy': 'CONTINUE',
        'warningType': 'FAILURE',
        'warningGroupId': 2,
        'execType': 'START_PROCESS',
        'startNodeList': [],
        'taskDependType': 'TASK_POST',
        'complementDependentMode': 'OFF_MODE',
        'runMode': 'RUN_MODE_SERIAL',
        'processInstancePriority': 'MEDIUM',
        'workerGroup': 'default',
        'environmentCode': '',
        'startParams': '',
        'expectedParallelismNumber': '',
        'dryRun': 0,
        'scheduleTime':{"complementStartDate": "2024-10-25 00:00:00", "complementEndDate": "2024-10-25 00:00:00"}

    }
    response = requests.post(url, headers=headers, data=data)
    print(response.status_code)
    
if __name__ == '__main__':
    start_process('15402965147328')

执行之后,在DS的工作流实例观察一下,确实运行了,而且代码中返回了200,说明一切都是正常的 ,可以用的 。

这里结合上一篇中获取工作流列表的方法,就可以实现把所有工作流手动执行一次。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值