Hi David, 
Thank you!

Yes, fair enough, but take for instance a BucketingSink class[1], it is a 
RichFunction which employs Timeservice to execute time-based logic, which is 
not directly associated with an event flow, like for example closing files 
every n minutes, etc. In an AsyncFunction I intended to use Timeservice the 
same way, like periodically reloading configuration from outside. 
Does it make sense?

[1] 
https://github.com/apache/flink/blob/24c2e17c8d52ae2f0f897a5806a3a44fdf62b0a5/flink-connectors/flink-connector-filesystem/src/main/java/org/apache/flink/streaming/connectors/fs/bucketing/BucketingSink.java#L405

Kind Regards,
Mike Pryakhin

> On 25 Apr 2019, at 10:59, Dawid Wysakowicz <dwysakow...@apache.org> wrote:
> 
> 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
>>  
>> <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
>>  
>> <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: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to