我有一个流程MyFlow
,该流程通过RPC与特定的args
一起调用,创建了一个tx,将其中的args
置于输出状态,然后调用{{1} }。我认为很标准。 RPC客户端可以同时调用一堆这些流。
现在,如果公证人或接收节点关闭,则subFlow(FinalityFlow(...))
可能会被暂停并重试。
我现在想做的是向用户/节点操作员查询/报告当前正在“挂起”哪些事务的信息,即正在重试。理想情况下,我想提取未完成的MyFlow
实例的tx-id和args
。我似乎无法使用MyFlow
,因为它的ProgressTracker
需要预先定义(例如,在Flow构造函数中,我还不知道tx-id),并且Steps
-字符串似乎并不是结构化数据的良好载体。 label
似乎很适合使用,因为它可以访问步骤AuditService
,但是它似乎只有无能为力的extraAuditData
实现,而且如果不更改{ {1}}(或者我可以吗?)。
有什么想法可以实现吗?
答案 0 :(得分:1)
您可以使用flow watch
从节点外壳中获取活动流。
要获取有关节点上运行的流的信息,需要获取内部信息。这是开发人员不擅自修改Corda的事情。
使用stateMachineRecordedTransactionMappingFeed
或stateMachinesFeed
可能可以使某些东西正常工作,但是您所能达到的目标将受到限制。
将来可能会在Corda中添加有关运行流和住院流的更多工具。