|
@@ -19,6 +19,7 @@ import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import javax.annotation.PreDestroy;
|
|
import javax.annotation.PreDestroy;
|
|
|
|
|
+import java.text.DecimalFormat;
|
|
|
import java.time.Instant;
|
|
import java.time.Instant;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
|
@@ -216,7 +217,7 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
- @Scheduled(fixedRate = 30000) // 每30秒检查一次
|
|
|
|
|
|
|
+ @Scheduled(fixedRate = 10000) // 每30秒检查一次
|
|
|
public void flushIfNeeded() {
|
|
public void flushIfNeeded() {
|
|
|
log.info("开始执行创意报表定时批处理任务....");
|
|
log.info("开始执行创意报表定时批处理任务....");
|
|
|
synchronized (creativeReportHourBuffer) {
|
|
synchronized (creativeReportHourBuffer) {
|
|
@@ -224,8 +225,14 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
|
|
|
if (creativeReportHourBuffer.size() >= MAX_BATCH_SIZE ||
|
|
if (creativeReportHourBuffer.size() >= MAX_BATCH_SIZE ||
|
|
|
(now - creativeReportHourLastFlushTime) >= MAX_WAIT_TIME_MS && !creativeReportHourBuffer.isEmpty()) {
|
|
(now - creativeReportHourLastFlushTime) >= MAX_WAIT_TIME_MS && !creativeReportHourBuffer.isEmpty()) {
|
|
|
try {
|
|
try {
|
|
|
- log.info("Flushed creativeReportHour batch size: {}", creativeReportHourBuffer.size());
|
|
|
|
|
|
|
+ long startTime = System.currentTimeMillis();
|
|
|
adqReportMapper.addsHourListSD(new ArrayList<>(creativeReportHourBuffer));
|
|
adqReportMapper.addsHourListSD(new ArrayList<>(creativeReportHourBuffer));
|
|
|
|
|
+ long endTime = System.currentTimeMillis();
|
|
|
|
|
+ long diffInMilliseconds = endTime - startTime;
|
|
|
|
|
+ double diffInSeconds = diffInMilliseconds / 1000.0;
|
|
|
|
|
+ DecimalFormat df = new DecimalFormat("#.00");
|
|
|
|
|
+ String seconds = df.format(diffInSeconds);
|
|
|
|
|
+ log.info("Flushed creativeReportHour batch size: {},执行时间:{}", creativeReportHourBuffer.size(), seconds);
|
|
|
creativeReportHourBuffer.clear();
|
|
creativeReportHourBuffer.clear();
|
|
|
creativeReportHourLastFlushTime = now;
|
|
creativeReportHourLastFlushTime = now;
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
@@ -240,8 +247,15 @@ public class AdqCreativeCreativeReportServiceImpl implements IAdqCreativeReportS
|
|
|
if (creativeReportDailyBuffer.size() >= MAX_BATCH_SIZE ||
|
|
if (creativeReportDailyBuffer.size() >= MAX_BATCH_SIZE ||
|
|
|
(now - creativeReportDailyLastFlushTime) >= MAX_WAIT_TIME_MS && !creativeReportDailyBuffer.isEmpty()) {
|
|
(now - creativeReportDailyLastFlushTime) >= MAX_WAIT_TIME_MS && !creativeReportDailyBuffer.isEmpty()) {
|
|
|
try {
|
|
try {
|
|
|
- log.info("Flushed creativeReportDaily batch size: {}", creativeReportDailyBuffer.size());
|
|
|
|
|
|
|
+ long startTime = System.currentTimeMillis();
|
|
|
adqReportMapper.addsDailySD(new ArrayList<>(creativeReportDailyBuffer));
|
|
adqReportMapper.addsDailySD(new ArrayList<>(creativeReportDailyBuffer));
|
|
|
|
|
+ long endTime = System.currentTimeMillis();
|
|
|
|
|
+ long diffInMilliseconds = endTime - startTime;
|
|
|
|
|
+ double diffInSeconds = diffInMilliseconds / 1000.0;
|
|
|
|
|
+ DecimalFormat df = new DecimalFormat("#.00");
|
|
|
|
|
+ String seconds = df.format(diffInSeconds);
|
|
|
|
|
+ log.info("Flushed creativeReportDaily batch size: {},执行时间:{}", creativeReportDailyBuffer.size(),seconds);
|
|
|
|
|
+
|
|
|
creativeReportDailyBuffer.clear();
|
|
creativeReportDailyBuffer.clear();
|
|
|
creativeReportDailyLastFlushTime = now;
|
|
creativeReportDailyLastFlushTime = now;
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|