flink有状态函数2.0异步等待期间多次调用

monwx1rj  于 2021-06-26  发布在  Flink
关注(0)|答案(1)|浏览(519)

flink stateful functions 2.0能够进行非同步调用,例如对外部api:[https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.0/sdk/java.html#completing-异步请求][1]。
然后暂停函数执行,直到调用以成功、失败或未知的方式完成。未知是:
在completablefuture完成之前,stateful函数可能在另一台机器上重新启动,因此不知道异步操作的状态是什么。
当对暂停/等待函数有第二个id相同的调用时会发生什么?
然后被调用方是否等待被调用函数对其异步结果的处理,以便第二个调用以干净的、非共享的后异步状态执行?
或者第二个调用是否按照正常的计划执行,从而在异步调用时的当前状态之上执行,然后当异步调用完成时,它将使用异步调用挂起时更新的状态继续处理?
或者,调用被认为是被调用函数的“重新启动”——在这种情况下,执行顺序是什么:“重新启动”运行,然后异步返回“重新启动”以从现在更新的状态执行,或者这个顺序是相反的?
或者别的什么?

gajydyqb

gajydyqb1#

异步请求完成时,函数执行不会暂停。该id的示例将继续处理消息,直到请求完成。这意味着状态可以在未来运行时更改。
把你的未来想象成一个特别的功能,你可以向它发送信息,然后当它有结果时再向你发送信息。函数可以生成多个异步请求而不会出现问题。无论哪个将来先完成,都将首先由函数示例进行处理,而不一定是按照生成它们的顺序。

相关问题