Flink Stateful Functions 2.0异步等待期间的多个调用



Flink Stateful Functions 2.0能够进行异步调用,例如对外部API的调用:[https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/sdk/java.html#completing-异步请求][1]。

然后暂停函数执行,直到调用以"成功"、"失败"或"未知"结束。未知是:

有状态函数已重新启动,可能是在另一台机器上,在CompletableFuture完成之前,因此它是未知的异步操作的状态是什么。

当有第二个对暂停/等待函数具有相同ID的调用时会发生什么?

  1. 然后被调用者是否等待被调用函数对它的异步结果,使得第二个调用以干净的,非共享后异步状态
  2. 或者第二个调用是在正常时间表,因此处于当前状态之上异步调用,然后当异步调用完成时继续使用异步调用时更新的状态进行处理挂起
  3. 或者,该呼叫可视为被呼叫的"重新启动"函数-在这种情况下,执行顺序是什么:"restart"运行,然后异步返回并执行从现在更新的状态,还是这个顺序颠倒了
  4. 还是别的什么

异步请求完成时,函数执行不会暂停。该id的实例将继续处理消息,直到请求完成。这意味着在未来运行时,状态可能会发生变化。

把你的未来想象成一个特殊的功能,你可以向它发送信息,然后在它有结果时向你发送信息。函数可以毫无问题地生成多个异步请求。无论将来哪个先完成,都将首先由函数实例进行处理,而不一定是按照它们产生的顺序。

相关内容

  • 没有找到相关文章

最新更新