前言

千呼万唤中,WorkflowAsCode 功能终于在 2.0.2 版本中如约上线,为有动态、批量创建和更新工作流需求的用户带来福音。

此外,新版本还新增企业微信告警群聊会话消息推送,简化了元数据初始化流程,并修复了旧版本中强制终止后服务重启失败,添加 Hive 数据源失败等问题。


01 新功能

1 WorkflowAsCode

首先在新功能上,2.0.2 版本重磅发布了 PythonGatewayServer, 这是一个 Workflow-as-code 的服务端,与 apiServer 等服务的启动方式相同。

启用 PythonGatewayServer 后,所有 Python API 的请求都会发送到 PythonGatewayServer。Workflow-as-code 让用户可以通过 Python API 创建工作流,对于有动态、批量地创建和更新工作流的用户来说是一个好消息。通过 Workflow-as-code 创建的工作流与其他工作流一样,都可以在 web UI 查看。

以下为一个 Workflow-as-code 测试用例:

# 定义工作流属性,包括名称、调度周期、开始时间、使用租户等信息
with ProcessDefinition(
name="tutorial",
schedule="0 0 0 * * ? *",
start_time="2021-01-01",
tenant="tenant_exists",
) as pd:
# 定义4个任务,4个都是 shell 任务,shell 任务的必填参数为任务名、命令信息,这里都是 echo 的 shell 命令
task_parent = Shell(name="task_parent", command="echo hello pydolphinscheduler")
task_child_one = Shell(name="task_child_one", command="echo 'child one'")
task_child_two = Shell(name="task_child_two", command="echo 'child two'")
task_union = Shell(name="task_union", command="echo union") # 定义任务间依赖关系
# 这里将 task_child_one,task_child_two 先声明成一个任务组,通过 python 的 list 声明
task_group = [task_child_one, task_child_two]
# 使用 set_downstream 方法将任务组 task_group 声明成 task_parent 的下游,如果想要声明上游则使用 set_upstream
task_parent.set_downstream(task_group) # 使用位操作符 << 将任务 task_union 声明成 task_group 的下游,同时支持通过位操作符 >> 声明
task_union << task_group

上面的代码运行后,可以在 web UI 看到的工作流如下:

                --> task_child_one
/ \
task_parent --> --> task_union
\ /
--> task_child_two

2 企业微信告警方式支持群聊消息推送

在此前版本中,微信告警方式仅支持消息通知方式;在 2.0.2 版本中,用户在使用企业微信的告警时,支持进行应用内以群聊会话消息推送的方式推送给用户。

02 优化

1 简化元数据初始化流程

首次安装 Apache DolphinScheduler 时,运行 create-dolphinscheduler.sh 需要从最早的版本逐步升级到当前版本。为了更方便快捷地初始化元数据流程,2.0.2 版本让用户可以直接安装当前版本的数据库脚本,提升安装速度。

2 删除补数日期中的“+1”(天)

删除了补数日期中的“+1”天,以避免补数时 UI 日期总显示 +1 给用户造成的困惑。

03 Bug 修复

[#7661] 修复 logger 在 worker 中的内存泄漏
[#7750 ]兼容历史版本数据源连接信息
[#7705] 内存限制导致从 1.3.5 升级到 2.0.2 出现错误
[#7786] 强制终止后服务重启失败
[#7660] 流程定义版本创建时间错误
[#7607] 执行 PROCEDURE 节点失败
[#7639] 在通用配置项中添加 quartz 和 zookeeper 默认配置
[#7654] 在依赖节点中,出现不属于当前项目的选项时报错
[#7658] 工作流复制错误
[#7609] worker sendResult 成功但 master 未收到错误时,工作流始终在运行
[#7554] Standalone Server 中的 H2 会在数分钟后自动重启,导致数据异常丢失
[#7434] 执行 MySQL 建表语句报错
[#7537] 依赖节点重试延迟不起作用
[#7392] 添加 Hive 数据源失败

下载:https://dolphinscheduler.apache.org/zh-cn/download/download.html
Release Note:https://github.com/apache/dolphinscheduler/releases/tag/2.0.2

04 致谢

一如既往地,感谢所有为 2.0.2版本建言献策并付诸行动的 Contributor(排名不分先后),是你们的智慧和付出让 Apache DolphinScheduler 更加符合用户的使用需求。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-khOi7pqS-1641973062202)(/img/bVcXkuE)]

05 参与贡献

随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球。

参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1eBvYLtR-1641973062204)(/img/bVcWTXJ)]

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689

非新手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22

如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html

来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。

参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds) 手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。添加小助手微信时请说明想参与贡献。

社区官网
https://dolphinscheduler.apache.org/

代码仓地址https://github.com/apache/dolphinscheduler

您的 Star,是 Apache DolphinScheduler 为爱发电的动力️ ~

投稿请添加社区小助手微信
(Leonard-ds)

WorkflowAsCode 来了,Apache DolphinScheduler 2.0.2 惊喜发布的更多相关文章

  1. Apache DolphinScheduler 3.0.0 正式版发布!

    ​  点亮 ️ Star · 照亮开源之路 GitHub:https://github.com/apache/dolphinscheduler   ​ 版本发布 2022/8/10 2022 年 8 ...

  2. Apache DolphinScheduler 2.0.1 来了,备受期待的一键升级、插件化终于实现

    ✎ 编 者 按:好消息!Apache DolphinScheduler 2.0.1 版本正式发布! 本版本中,DolphinScheduler 经历了一场微内核+插件化的架构改进,70% 的代码被重构 ...

  3. 重构、插件化、性能提升 20 倍,Apache DolphinScheduler 2.0 alpha 发布亮点太多!

    点击上方 蓝字关注我们 社区的小伙伴们,好消息!经过 100 多位社区贡献者近 10 个月的共同努力,我们很高兴地宣布 Apache DolphinScheduler 2.0 alpha 发布.这是 ...

  4. Apache DolphinScheduler 1.3.6 功能发布说明

    参与人员 @chengshiwen.@hailin0.@wanghong1314.@ruanwenjun.@xxjingcd.@zhangguohao.@zhuangchong.@syb8535531 ...

  5. 就在明天,Apache DolphinScheduler Meetup 2021 如约而至!

    点击上方 蓝字关注我们 社区的小伙伴们,Apache DolphinScheduler Meetup 2021 如约而至,就在明天,等你来玩! 在此次 Meetup 线上直播中,不仅将有来自 Bigo ...

  6. 感谢有你!Apache DolphinScheduler 项目 GitHub star 突破 8k

    本周伊始,Apache DolphinScheduler 项目在 GitHub 上的 Github Star 总数首次突破 8K.目前,Apache DolphinScheduler 社区已经拥有 C ...

  7. 论语音社交视频直播平台与 Apache DolphinScheduler 的适配度有多高

    在 Apache DolphinScheduler& Apache ShenYu(Incubating) Meetup 上,YY 直播 软件工程师 袁丙泽 为我们分享了<YY直播基于Ap ...

  8. Apache DolphinScheduler&ShenYu(Incubating) 联合 Meetup,暖春 3 月与你相约!

    云霞出海曙,梅柳渡江春. 2022 年的早春在疫情中显得格外生机勃勃,虽然接下来寒流仍有可能造访国内部分地区,但开源的世界,早已热闹非凡! 2022 年 3 月 26 日(星期六), Apache D ...

  9. 杭州思科对 Apache DolphinScheduler Alert 模块的改造

    杭州思科已经将 Apache DolphinScheduler 引入公司自建的大数据平台.目前,杭州思科大数据工程师 李庆旺 负责 Alert 模块的改造已基本完成,以更完善的 Alert 模块适应实 ...

随机推荐

  1. Map和WeakMap的方法和区别

    Map Map是一组键值对的结构,具有极快的查找速度. 一.构造函数不同 let map = new Map(); let weakmap = new WeakMap(); 二.内置函数不同 Map的 ...

  2. python并发编程之线程/协程

    python并发编程之线程/协程 part 4: 异步阻塞例子与生产者消费者模型 同步阻塞 调用函数必须等待结果\cpu没工作input sleep recv accept connect get 同 ...

  3. 广义SAM

    参考 还有首先你要会SAM吧~ 用途 相比与单串SAM,广义自动机能存储的是多个字符串. 有两种写法,第一种是离线利用trie树结构,第二种是在线伪广义SAM 离线+Trie 首先构建出trie树. ...

  4. 如何把你的 Android 使用得像 Linux

    前言 最近在学校里上课,老师讲的东西又听不进去,手里只有一个手机和一个平板,之前还可以用 ssh 连接云服务器玩点东西,但是我是用的软件 Juice ssh 并不是很友好,退出到后台一段时间后竟然会自 ...

  5. 定制.NET 6.0的依赖注入

    大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 在本章中,我们将学习ASP.NET Core的依赖项注入(DI)以及如何自定义它. ...

  6. Puppeteer学习笔记 (1)- 什么是Puppeteer

    本文链接:https://www.cnblogs.com/hchengmx/p/11006263.html 1. phantomjs介绍 在介绍puppeteer之前必须介绍一下phantomjs,p ...

  7. bootstrap 4.0 dropdown 找不到popper.js 的解决方案

    最近项目中升级bootstrap 由3.3.7版 升了4.0版本 发现 dropdown 找不到popper.js 解决办法:npm install -save popper 下载完之后,查看node ...

  8. springboot2.7.x 集成log4j2配置写入日志到mysql自定义表格

    在阅读之前请先查看[springboot集成log4j2] 本文暂不考虑抽象等实现方式,只限于展示如何自定义配置log4j2并写入mysql数据库(自定义结构) 先看下log4j2的配置 <?x ...

  9. python基础知识-day7(文件操作)

    1.文件IO操作: 1)操作文件使用的函数是open() 2)操作文件的模式: a.r:读取文件 b.w:往文件里边写内容(先删除文件里边已有的内容) c.a:是追加(在文件基础上写入新的内容) d. ...

  10. mysql备份数据库linux

    备份数据库 问题描述: ​ 我们用的是mysql,以今天遇到的情况为例,我们是在两台服务器上要搭相同的平台,部署完成后页面报错,发现是数据库的问题,我们打开数据库查看,确实数据库中少建一个wind数据 ...