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
>

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to