我有一个流MyFlow,它通过RPC和一些特定的args调用,创建一个tx,将一些args放在输出状态,然后调用subFlow(FinalityFlow(...))。我认为这是相当标准的。RPC客户端可以同时调用这些流中的一堆。现在,如果公证或接收节点关闭,MyFlow可能会挂起并重试。
我现在想要做的是向用户/节点操作员查询/报告有关当前“挂起”(即正在重试)的事务的信息。理想情况下,我希望取出未完成的MyFlow实例的tx-id和args。我似乎不能使用ProgressTracker,因为它的Steps需要预先定义(即在流构造函数中,我还不知道tx-id ),而且label-String似乎不是一个很好的结构化数据载体。AuditService看起来是一个很好的候选者,因为它可以访问步骤extraAuditData,但它似乎只有一个不做任何事情的DummyAuditService实现,而且我不能在不更改AbstractNode.kt的情况下挂接自定义实现(或者我可以吗?)。
有什么想法可以实现这一点吗?
发布于 2019-07-10 23:06:19
您可以使用flow watch从节点外壳中获取活动流。
检索有关在节点上运行的流的信息需要检索内部信息。这不是开发人员可以在不使用corda的情况下所做的事情。
使用stateMachineRecordedTransactionMappingFeed或stateMachinesFeed也许可以让一些东西工作,但你所能实现的将是有限的。
围绕运行流和住院流的进一步工具可能会在未来添加到Corda中。
https://stackoverflow.com/questions/56850104
复制相似问题