[ https://issues.apache.org/jira/browse/FLINK-3674?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15400422#comment-15400422 ]
ramkrishna.s.vasudevan commented on FLINK-3674: ----------------------------------------------- Thanks for the comments/feedback. I could see that the initial thought was to just expose some interface so that UDFs can implement them and get a call back onWaterMark. LAter Timer based interface was talked about. So my initial thought was to just do the changes so that Timer is exposed as an interface based on EventTimeFunction. The idea was not to make this PR as a final one but to bring in the discussion. If the practice in FLINK is to make design doc based discussions I can ensure that for such PRs i will first add a doc and then PR. This happened to another PR also. So I will learn better and change my methodology. bq.Right now, WindowOperator has a custom implementation of this. This should be taken as the basis for a generic implementation than can then also be exposed to users. My thought of exposing the Timer as a first step and then build it based on feedback was because of this. Since the Timer in WindowOperator is custom one I thought first converting it to an interface would help to add on and see what can we do to make it generic. > Add an interface for EventTime aware User Function > -------------------------------------------------- > > Key: FLINK-3674 > URL: https://issues.apache.org/jira/browse/FLINK-3674 > Project: Flink > Issue Type: New Feature > Components: Streaming > Affects Versions: 1.0.0 > Reporter: Stephan Ewen > Assignee: ramkrishna.s.vasudevan > > I suggest to add an interface that UDFs can implement, which will let them be > notified upon watermark updates. > Example usage: > {code} > public interface EventTimeFunction { > void onWatermark(Watermark watermark); > } > public class MyMapper implements MapFunction<String, String>, > EventTimeFunction { > private long currentEventTime = Long.MIN_VALUE; > public String map(String value) { > return value + " @ " + currentEventTime; > } > public void onWatermark(Watermark watermark) { > currentEventTime = watermark.getTimestamp(); > } > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)