大家好,我是勇哥,和大家分享最近一个月的学习心得,希望对大家有所启发。
工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流可以将一套大的业务逻辑分解成业务逻辑段, 并统一控制这些业务逻辑段的执行条件,执行顺序以及相互通信,实现业务逻辑的分解和解耦。
企业日常的管理中,经常会有出差申请、加班申请、请假申请等流程。如果用人工的方式管理这些流程,效率低,管理成本高。因此为了提高效率,我们需要使用到工作流开发。
Camunda 是一个轻量级的商业流程开源平台,基于 Java 框架,它可以内嵌集成到 Java 应用和 Spring Boot 应用中,也可以独立运行。Camunda 包含三个重要的特性:
笔者通过 Camunda Modeler (建模工具) 画了第一个工作流图:
该工作流主要用于判断合同是否满足相关条件,若满足,则会收到消息进行消费。
BPMN 文件中 包含了一个决策表文件 DMN ,见下图:
接下来,部署 Camunda Platform(独立的服务 )。
然后通过 建模工具 将工作流文件(BPMN)以及决策表文件(DMN) 上传到 Camunda 平台 。
Camunda 平台提供了多个接口,任务程序会调用 Camunda 平台的启动实例接口 ,触发工作流,当合同满足要求后,在监听程序里,实现自定义逻辑。
Airflow 是一个可编程,调度和监控的工作流平台,基于有向无环图(DAG),Airflow 可以定义一组有依赖的任务,按照依赖依次执行。
笔者使用 AirFlow 将 MySQL 数据同步到 ElasticSearch ,大体设计类似:
一个简单的 DAG 代码模版如下图:
五天时间囫囵吞枣般读完了这本书,就像看一部科幻短剧。
男主角有一个非常不快乐的童年,但他对世界充满了好奇心和探索欲,他敏锐的发现,真正影响人类社会的东西只有三个,“互联网、可持续能源和太空旅行”。
他将其视为使命而不是逐利的工具,偏执的追逐自己的使命,而 PayPal、 SpaceX 、特斯拉真正做到了改变了世界。