|
@@ -26,6 +26,7 @@ import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Iterator;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -120,13 +121,15 @@ public class AdMinuteDWDProcess extends ProcessWindowFunction<AdDataOfMinuteODS,
|
|
|
yesterdayMinuteState.put(statDay, newAdStat);
|
|
|
|
|
|
List<String> removeKeys = new ArrayList<>(10);
|
|
|
- for (String key : lastReduceState.keys()) {
|
|
|
- if (key.equals(beginDateTime.format(formatForLastReduceKey))
|
|
|
- || key.equals(beginDateTime.minusMinutes(5L).format(formatForLastReduceKey))
|
|
|
- || key.equals(beginDateTime.minusMinutes(10L).format(formatForLastReduceKey))) {
|
|
|
+ Iterator<Map.Entry<String, AdStatOfMinuteDWD>> lastIterator = lastReduceState.iterator();
|
|
|
+ while (lastIterator.hasNext()) {
|
|
|
+ Map.Entry<String, AdStatOfMinuteDWD> temp = lastIterator.next();
|
|
|
+ if (temp.getKey().equals(beginDateTime.format(formatForLastReduceKey))
|
|
|
+ || temp.getKey().equals(beginDateTime.minusMinutes(5L).format(formatForLastReduceKey))
|
|
|
+ || temp.getKey().equals(beginDateTime.minusMinutes(10L).format(formatForLastReduceKey))) {
|
|
|
continue;
|
|
|
}
|
|
|
- removeKeys.add(key);
|
|
|
+ removeKeys.add(temp.getKey());
|
|
|
}
|
|
|
if (!removeKeys.isEmpty()) {
|
|
|
for (String key : removeKeys) {
|
|
@@ -134,14 +137,15 @@ public class AdMinuteDWDProcess extends ProcessWindowFunction<AdDataOfMinuteODS,
|
|
|
}
|
|
|
}
|
|
|
removeKeys.clear();
|
|
|
- for (String key : yesterdayMinuteState.keys()) {
|
|
|
- if (key.equals(DateUtil.formatLocalDate(beginDate))
|
|
|
- || key.equals(DateUtil.formatLocalDate(beginDate.minusDays(1L)))
|
|
|
- || key.equals(DateUtil.formatLocalDate(beginDate.minusDays(2L)))) {
|
|
|
+ Iterator<Map.Entry<String, AdStatOfMinuteDWD>> yesterdayIterator = yesterdayMinuteState.iterator();
|
|
|
+ while (yesterdayIterator.hasNext()) {
|
|
|
+ Map.Entry<String, AdStatOfMinuteDWD> temp = yesterdayIterator.next();
|
|
|
+ if (temp.getKey().equals(DateUtil.formatLocalDate(beginDate))
|
|
|
+ || temp.getKey().equals(DateUtil.formatLocalDate(beginDate.minusDays(1L)))
|
|
|
+ || temp.getKey().equals(DateUtil.formatLocalDate(beginDate.minusDays(2L)))) {
|
|
|
continue;
|
|
|
}
|
|
|
- removeKeys.add(key);
|
|
|
- yesterdayMinuteState.remove(key);
|
|
|
+ removeKeys.add(temp.getKey());
|
|
|
}
|
|
|
if (!removeKeys.isEmpty()) {
|
|
|
for (String key : removeKeys) {
|