首页 > 解决方案 > 查询活动/住院corda-flows的状态

问题描述

我有一个MyFlow通过 RPC 调用特定的流args,创建一个 tx 将其中的一些args置于输出状态,然后调用subFlow(FinalityFlow(...))。我觉得挺标准的。RPC 客户端可能会同时调用一堆这些流。现在,如果公证人或接收节点出现故障,MyFlow可能会被挂起并重试。

我现在想做的是向用户/节点操作员查询/报告有关哪些事务当前“待定”的信息,即正在重试。理想情况下,我想提取 tx-id 和args未完成实例的MyFlow. 我似乎无法使用ProgressTracker,因为它Steps需要预先定义(即在 Flow-constructor 中,我还不知道 tx-id ),而且label-String 似乎并不好结构化数据的载体。AuditService看起来像一个很好的候选人,因为它可以访问 steps extraAuditData,但它似乎只有无操作的DummyAuditService实现,我不能在不改变的情况下挂钩自定义实现AbstractNode.kt(或者我可以吗?)。
有什么想法可以实现吗?

标签: corda

解决方案


您可以使用flow watch.

检索有关在节点上运行的流的信息需要检索内部信息。这不是开发人员可以在没有破解corda的情况下做的事情。

使用某些东西可能会起作用,stateMachineRecordedTransactionMappingFeed或者stateMachinesFeed您可以实现的目标将受到限制。

未来可能会在 Corda 中添加围绕运行流程和住院流程的进一步工具。


推荐阅读