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

ASF GitHub Bot commented on FLINK-8560:
---------------------------------------

Github user pnowojski commented on a diff in the pull request:

    https://github.com/apache/flink/pull/5481#discussion_r169060097
  
    --- Diff: 
flink-streaming-java/src/test/java/org/apache/flink/streaming/api/operators/KeyedProcessOperatorTest.java
 ---
    @@ -377,119 +375,114 @@ public T getKey(T value) throws Exception {
                }
        }
     
    -   private static class QueryingFlatMapFunction extends 
ProcessFunction<Integer, String> {
    +   private static class QueryingFlatMapFunction extends 
KeyedProcessFunction<Integer, Integer, String> {
     
                private static final long serialVersionUID = 1L;
     
    -           private final TimeDomain timeDomain;
    +           private final TimeDomain expectedTimeDomain;
     
                public QueryingFlatMapFunction(TimeDomain timeDomain) {
    -                   this.timeDomain = timeDomain;
    +                   this.expectedTimeDomain = timeDomain;
                }
     
                @Override
                public void processElement(Integer value, Context ctx, 
Collector<String> out) throws Exception {
    -                   if (timeDomain.equals(TimeDomain.EVENT_TIME)) {
    +                   if (expectedTimeDomain.equals(TimeDomain.EVENT_TIME)) {
                                out.collect(value + "TIME:" + 
ctx.timerService().currentWatermark() + " TS:" + ctx.timestamp());
                        } else {
                                out.collect(value + "TIME:" + 
ctx.timerService().currentProcessingTime() + " TS:" + ctx.timestamp());
                        }
                }
     
                @Override
    -           public void onTimer(
    -                           long timestamp,
    -                           OnTimerContext ctx,
    -                           Collector<String> out) throws Exception {
    +           public void onTimer(long timestamp, OnTimerContext<Integer> 
ctx, Collector<String> out) throws Exception {
    +                   // Do nothing
                }
        }
     
    -   private static class TriggeringFlatMapFunction extends 
ProcessFunction<Integer, Integer> {
    +   private static class TriggeringFlatMapFunction extends 
KeyedProcessFunction<Integer, Integer, Integer> {
     
                private static final long serialVersionUID = 1L;
     
    -           private final TimeDomain timeDomain;
    +           private final TimeDomain expectedTimeDomain;
    +
    +           static final Integer EXPECTED_KEY = 17;
    --- End diff --
    
    As in the second PR: does this have to be a static field? Or can we 
initialise it in the constructor? I think it should work with the `expectedKey` 
set in the constructor as long as this is not an `ITCase` - and it's not, it's 
using test harness. 


> add KeyedProcessFunction to expose the key in onTimer() and other methods
> -------------------------------------------------------------------------
>
>                 Key: FLINK-8560
>                 URL: https://issues.apache.org/jira/browse/FLINK-8560
>             Project: Flink
>          Issue Type: Improvement
>          Components: DataStream API
>    Affects Versions: 1.4.0
>            Reporter: J├╝rgen Thomann
>            Assignee: Bowen Li
>            Priority: Major
>             Fix For: 1.5.0
>
>
> Currently it is required to store the key of a keyBy() in the processElement 
> method to have access to it in the OnTimerContext.
> This is not so good as you have to check in the processElement method for 
> every element if the key is already stored and set it if it's not already set.
> A possible solution would adding OnTimerContext#getCurrentKey() or a similar 
> method. Maybe having it in the open() method could maybe work as well.
> http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Getting-Key-from-keyBy-in-ProcessFunction-tt18126.html



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to