首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zeebe工作流实例中的自定义流程状态

Zeebe工作流实例中的自定义流程状态
EN

Stack Overflow用户
提问于 2019-09-04 09:08:25
回答 2查看 620关注 0票数 0

有没有一种方法可以将自定义状态(字符串值)附加到正在运行的Zeebe工作流中/从运行中的Zeebe工作流中检索自定义状态(字符串值)?

示例:考虑Zeebe中的一个规范的信用卡收费工作流。

启动-> ChargeCreditCard (服务任务) -> End

ChargeCreditCard任务被建模为nodejs worker应用程序正在侦听某个主题的外部任务。假设这个nodejs应用程序需要1分钟来执行和完成,我想为这个模型定义/附加2个自定义状态名称。

状态# 1.充值-信用卡(1分钟前)状态# 2.信用卡-充值-成功(1分钟后)

因此,如果有人通过zeebe rest api检索正在运行的工作流实例的状态,他们将在执行之前获得状态#1,在nodejs worker完成后的1分钟后获得状态#2。

我的问题是,在Zeebe中有一种本地方法可以使用标准的BPMN对象来实现这一点。如果没有,是否有任何解决方法来实现同样的目标。

EN

回答 2

Stack Overflow用户

发布于 2019-09-04 16:28:44

我认为前面的答案可以通过强调出于可伸缩性的目的而设计不支持查询工作流状态来改进。因此,您甚至不应该查询zeebe代理/引擎的内部状态,而是让它独立处理自己的状态,同时限制自己只处理zeebe代理关于其状态异步发布或导出的工件。

我不同意的是,将BPMN与服务工作者打乱,这些工作者没有任何功能意义,但作为技术变通方法,以实现一些您甚至不应该首先追求的目标。因为,从定义上讲,这违背了使用BPMN来澄清和编排流程的目的。

我现在正在研究的解决方案,将在一个月左右的时间内开放源代码,大致如下。-与应用程序接口服务器和套接字服务器连接的现代Javascript用户界面-提供用于创建工作流实例、将数据放入工作流实例等的RESTful接口的应用程序接口服务器-带有kafka导出器的zeebe安装-订阅与工作流实例事件相关的kafka主题的套接字服务器(在我的示例中使用kafkajs ),处理kafka消息并通过套接字将处理后的数据发送回JavaScript前端应用程序

基本的概念验证可以在这里找到https://gitlab.com/werk-en-inkomen/zeebe-kafka-socket。更整洁、更精细、完全Docker化的解决方案很快就会出现。

票数 2
EN

Stack Overflow用户

发布于 2019-09-04 12:55:57

没有Zeebe REST API。也没有任何Zeebe gRPC查询应用程序接口来检索正在运行的工作流实例的状态(至少在任何支持生产版本的版本中都没有-它在0.18中被删除了)。在这个特性请求"Awaitable Workflow Outcomes“中有关于获取正在运行的工作流的更新的讨论。

因此,目前无法查询工作流状态。你必须从一个工人那里广播/发消息出去。

您可以通过将子流程中的"Charge信用卡“服务任务放在子流程中,并在子流程上放置非中断性边界事件计时器来触发服务任务来触发状态更新,从而实现您想要做的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57780285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档