[
https://issues.apache.org/jira/browse/FLINK-8322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16309851#comment-16309851
]
ASF GitHub Bot commented on FLINK-8322:
---------------------------------------
Github user GJL commented on a diff in the pull request:
https://github.com/apache/flink/pull/5236#discussion_r159461777
--- Diff:
flink-streaming-java/src/main/java/org/apache/flink/streaming/api/operators/HeapInternalTimerService.java
---
@@ -442,23 +458,15 @@ public int numEventTimeTimers() {
}
public int numProcessingTimeTimers(N namespace) {
- int count = 0;
- for (InternalTimer<K, N> timer : processingTimeTimersQueue) {
- if (timer.getNamespace().equals(namespace)) {
- count++;
- }
- }
- return count;
+ return
processingTimeNumberTimers.column(namespace).keySet().stream()
--- End diff --
How about something like:
```
public int numProcessingTimeTimers(N namespace) {
return processingTimeNumberTimers.column(namespace)
.entrySet()
.stream()
.mapToInt(Map.Entry::getValue)
.sum();
}
```
It avoids the additional key lookup in `mapToInt`
> support getting number of existing timers in TimerService
> ---------------------------------------------------------
>
> Key: FLINK-8322
> URL: https://issues.apache.org/jira/browse/FLINK-8322
> Project: Flink
> Issue Type: Improvement
> Components: DataStream API
> Affects Versions: 1.4.0
> Reporter: Bowen Li
> Assignee: Bowen Li
> Fix For: 1.5.0
>
>
> There are pretty common use cases where users want to use timers as scheduled
> threads - e.g. add a timer to wake up x hours later and do something (reap
> old data usually) only if there's no existing timers, basically we only want
> at most 1 timer exists for the key all the time
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)