[
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)