• Dolphinscheduler的API接口问题


    在使用java 调用dolphinscheduler的API接口时要注意的事项:

    1:官方文档中写的是使用ui界面创建token,然后将token设置在header中,但是如果没有这个token怎么办?因为在一个陌生的环境中,一般没人会记这个token,而是使用账号密码登录,所以我们可以使用账号密码登录,dolphinscheduler源码中的拦截器没有对这一步进行token校验,所以可以登陆,登陆完了后会返回一个sessionId字符串,将这个字符串设置到header中,key为sessionId,value为刚刚返回的那个字符串。

    2:使用save  task功能无法在相应的ui界面中查看到怎么办?

    这个我也查不到,而且使用swagger中的查询任务的功能也查不到save 的task,那要怎么样在不使用taskCode的情况下才可以查询到这个task呢?

    我们只需要在创建好task后,将获取到的taskCode再进行工作流关系中的修改工作流关系,将taskCode设置到一个任务的preTaskCode中,就可以使用查询project下的task中看到该task

    3:创建project时,参数问题:

            1:locations,taskRelationJson与taskDefinitionJson是list形式的json,与普通的{"key": "value"}这种形式来说,这三个参数需要的是[{"key":"value"}]的形式,没有[]会报错参数无效

            2:taskDefinition的taskCode与taskRelationJson的postTaskCode,与Locations中的taskCode要一样,这三个参数的形式可以看源码中的Test,里面有,这里给大家分别贴出来一个合格的形式

    带yigetask的taskDefinitionJson:

    [
      {
        "code": 15465156156265,
        "name": "test1",
        "version": 1,
        "description": "",
        "delayTime": 0,
        "taskType": "SHELL",
        "taskParams": {
          "resourceList": [],
          "localParams": [],
          "rawScript": "echo 1",
          "dependence": {},
          "conditionResult": {
            "successNode": [],
            "failedNode": []
          },
          "waitStartTimeout": {},
          "switchResult": {}
        },
        "flag": "YES",
        "taskPriority": "MEDIUM",
        "workerGroup": "default",
        "failRetryTimes": 0,
        "failRetryInterval": 1,
        "timeoutFlag": "CLOSE",
        "timeoutNotifyStrategy": null,
        "timeout": 0,
        "environmentCode": -1
      }
    ]

    这个code是自己写的一个随机14位随机数。

    locations:

    [
      {
        "taskCode": 15465156156265,
        "x": 332,
        "y": 62
      }
    ]
    taskRelations:

    [   {     "name": "",     "preTaskCode": 0,     "preTaskVersion": 0,     "postTaskCode": 15465156156265,     "postTaskVersion": 1,     "conditionType": "NONE",     "conditionParams": "{}"   } ]

            3:剩下的projectCode去项目的那一套方法中去找,tenantCode去租户那一套方法中去找,这些都是只需要登上就可以直接查看的那种

    4:重名问题:

    dolphinshceduler中project和process是不可以重名的,这样就可以使用java制造一个根据名字查看code的功能,但是task的名字是可以重复的,这点就很烦,所以在查找task的具体信息时,只能使用taskCode。

  • 相关阅读:
    在.NET 6.0上使用Kestrel配置和自定义HTTPS
    【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个响应式网站登陆页面|使用全屏可拖动图像滑块~手把手一步一步教学 ~快来收藏吧!
    Nginx原理以及基础知识详解
    Unity3D简陋版跑酷游戏
    leetcode - 253. Meeting Rooms II
    基于javaweb+mysql的新闻发布管理系统
    四象限时间管理有多好用?
    基于Java毕业设计在线玩具租赁系统源码+系统+mysql+lw文档+部署软件
    UDP内网收发用netcat测试
    【笔记】JS的[Object file]类型转string
  • 原文地址:https://blog.csdn.net/m0_64998696/article/details/133905731