[ 
https://issues.apache.org/jira/browse/FLINK-5012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15636333#comment-15636333
 ] 

Aljoscha Krettek commented on FLINK-5012:
-----------------------------------------

I think one reason why not is that the {{RuntimeContext}} is also used for 
batch API stuff and it is already horribly overloaded. Another reason is that 
the {{RuntimeContext}} can only be retrieved in a {{RichFunction}}.

My ideal solution would be this:
{code}
void flatMap(I value, Context ctx) throws Exception;

interface Context {
  Long timestamp();
  TimerService timerService();
  void output(OUT value);
}
{code}

I've tried pushing something like this in the past though and generally the 
opinion is against this because it departs from the usual functions that have a 
{{Collector}}. So it'll probably be more like this in the end:

{code}
void flatMap(I value, Context ctx, Collector<OUT> out) throws Exception;

interface Context {
  Long timestamp();
  TimerService timerService();
}
{code}

Or we could put the methods of {{TimerService}} directly into the context, then 
we would duplicate code between {{TimelyFlatMap}} and {{TimelyCoFlatMap}}, 
however.

> Provide Timestamp in TimelyFlatMapFunction
> ------------------------------------------
>
>                 Key: FLINK-5012
>                 URL: https://issues.apache.org/jira/browse/FLINK-5012
>             Project: Flink
>          Issue Type: Improvement
>          Components: Streaming
>            Reporter: Aljoscha Krettek
>
> Right now, {{TimelyFlatMapFunction}} does not give the timestamp of the 
> element in {{flatMap()}}.
> The signature is currently this:
> {code}
> void flatMap(I value, TimerService timerService, Collector<O> out) throws 
> Exception;
> {code}
> if we add the timestamp it would become this:
> {code}
> void flatMap(I value, Long timestamp, TimerService timerService, Collector<O> 
> out) throws Exception;
> {code}
> The reason why it's a {{Long}} and not a {{long}} is that an element might 
> not have a timestamp, in that case we should hand in {{null}} here.
> This is becoming quite look so we could add a {{Context}} parameter that 
> provides access to the timestamp and timer service.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to