【问题标题】:Placing a timeout on `receive` calls in Corda flows在 Corda 流中对“接收”调用设置超时
【发布时间】:2018-06-13 16:31:23
【问题描述】:

我编写了一个希望从多个交易对手接收数据的 Corda 流。如果某个节点发送数据的时间过长(例如因为对方节点或网络宕机),我想在等待一定时间后超时,并继续执行流程。

这在 Corda 中可行吗?

【问题讨论】:

    标签: corda


    【解决方案1】:

    您可以在 VaultQuery 上创建一个超时等待特定状态的未来。 (顺便说一句:未来必须与类星体兼容——以支持被暂停)

    例如,正如我在这里所描述的(不同的上下文但类似的方法)Is it possible to suspend a flow such that it can be resumed with an RPC-call?

    在 VaultQuery 上创建未来时,您可以指定超时。已经实施并且有效;未来等待数据的到来然后继续。尽管我会向 Corda 开发团队咨询有关此方法的任何进一步的 cmets。

    【讨论】:

    • 这是一个很酷的解决方案。我猜这仅适用于在另一侧的保险库中放入东西的sends?
    • 是的,没错;我在等待自定义 ContractStates。我假设您可以实现未来等待流程中的任何内容?我认为等待 ContractState 可以避免因流暂停而引起的更复杂的考虑,例如如果流已被挂起,则等待来自端口的数据流......等等。
    【解决方案2】:

    从 Corda 3 开始,目前尚未实现在 receivesendAndReceive 调用上添加超时的功能。

    将来可能会作为平台的扩展添加。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多