Hi Mike, I think the reason why there is no access to TimerService in async function is that as it is an async function, there are no guarantees when/and where(at which stage of the pipeline) the function will actually be executed. This characteristic doesn't align with TimerService and timely callbacks.
Best, Dawid On 19/04/2019 17:41, Mikhail Pryakhin wrote: > Hello, Flink community! > > It happens that I need to access a timer service in a > RichAsyncFunction implementation. I know it's normally accomplished > via StreamingRuntimeContext instance available in a RichFunction, but > unfortunately, RichAsyncFunction extending RichFunction overrides > “setRuntimeContext” method [1] wrapping a RuntimeContext instance > passed as the method argument into a RichAsyncFunctionRuntimeContext > instance [2]. This RichAsyncFunction specific RuntimeContext > implementation is private [2] which makes it infeasible to gain access > to a wrapped original RuntimeContext thus making it impossible to > leverage timer service in RichAsyncFunction implementations. Just > curious is there any reason for that? Can we make this implementation > public or somehow share a wrapped instance? > > Many thanks in advance! > > [1] > https://github.com/apache/flink/blob/c96a4d7afe379a291cc538ca36af896df8dc2127/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/functions/async/RichAsyncFunction.java#L76 > [2] > https://github.com/apache/flink/blob/c96a4d7afe379a291cc538ca36af896df8dc2127/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/functions/async/RichAsyncFunction.java#L100 > > > > Kind Regards, > Mike Pryakhin >
signature.asc
Description: OpenPGP digital signature