文章插图
?
文章插图
? 查看test2的日志并未有任何执行结果打印出
文章插图
? 根据上面的猜测,由于在使用的时候我们整体上加了单引号,又根据shell语法的经验,所以笔者决定在引用变量的时候再加单引号试试,也就是如下形式:echo '${setValue(key='$value')}'
我们来继续实验:【DophineSheduler上下游任务之间动态传参案例及易错点总结】value=https://www.huyubaike.com/biancheng/`date`echo $valueecho"-------------start-----------"echo '${setValue(key='$value')}'echo "-------------end----------------"
文章插图
?查看任务2的执行结果日志:
文章插图
? 我们看到出现了最终想要的执行结果日志,也就是说想要动态传参必须采用如下模式才能成功~ echo '${setValue(key='$value')}'
注意:在海豚调度器在 3.0.0-beta-1 版本后修复了这一问题,可以更好的支持动态传参问题,比如动态地获取现有的本地或 HTTP 资源并获取设定变量 。 具体使用方法如下:lines_num=$(wget https://raw.githubusercontent.com/apache/dolphinscheduler/dev/README.md -q -O - | wc -l | xargs)echo "#{setValue(set_val_var=${lines_num})}"
文章插图
? 总体传参串联任务案例第一步:设置任务输出参数
文章插图
? 第二步:获取第一步参数并打印输出,且继续传参
文章插图
? 第三步:使用SQL语句获取第一步传递的参数 , 并把结果传递给下游 。
文章插图
? 引用参数时候 , 直接引用自定义输出参数的 Key 就可以了,比如本案例的 output ,一般采用${output}的形式,具体如下图所示:
文章插图
?第四步:获取第三步的执行结果参数 , 并将结果输出~
文章插图
?【注意点】如果是sql任务:sql结尾不要有分号(;)否则会报错 。 整体流程如下图所示
文章插图
?查看最终(邮件结果)如下:
文章插图
任务4日志信息:可以看到已生成结果信息
文章插图
?小结本文总结了DophineSheduler上下游任务之间参数传递的方法 , 并对其中的易错点进行了梳理,同时给出了具体参数传递的案例,读者可自行进行摸索 。 其中易错点归纳如下:(1)参数输出时方向选择为 out(2)sql任务时参数的 key 值一定和 sql 语句中的字段名保持一致 , 否则不识别(3)输出的value值不需要填写(4)shell任务时,具体参考如下模板 , 模板中注意引号的使用echo '${setValue(key='$value')}'注意此处等号左边的 key 需要和自定义输出的参数key 名字一致
(5)sql任务中结尾不要有分号(6)引用参数时只需要采用${key}即可 最后,如果对这个话题感兴趣的话,可以进群一起交流沟通,谢谢大家~最后非常欢迎大家加入 DolphinScheduler 大家庭,融入开源世界!我们鼓励任何形式的参与社区,最终成为 Committer 或 PPMC , 如:
- 将遇到的问题通过 GitHub 上 issue 的形式反馈出来 。
- 回答别人遇到的 issue 问题 。
- 帮助完善文档 。
- 帮助项目增加测试用例 。
- 为代码添加注释 。
- 提交修复 Bug 或者 Feature 的 PR 。
- 发表应用案例实践、调度流程分析或者与调度相关的技术文章 。
- 帮助推广 DolphinScheduler,参与技术大会或者 meetup 的分享等 。
- 比如添加代码注释或找到带有 ”easy to fix” 标记或一些非常简单的 issue(拼写错误等) 等等,先通过第一个简单的 PR 熟悉提交流程 。
推荐阅读
- 通过Thread Pool Executor类解析线程池执行任务的核心流程
- 光遇双十一任务怎么做
- 原神双重任务晋级与调查攻略
- 班主任工作任务总结模板
- 教学任务包括哪些方面教案中的 教学任务包括哪些方面
- 抖管家怎么提交任务
- 历史科目教学工作任务总结
- 使命召唤战区挑战任务 使命召唤16战区任务怎么完成
- 光遇的每日任务在哪里找 光遇的每日任务在哪里
- 电脑结束任务快捷键 电脑结束任务按哪一个键