From ee53f5000a8b4507682958f0f64f0930bfa877fe Mon Sep 17 00:00:00 2001 From: lxy <237809796@qq.com> Date: Thu, 17 Dec 2020 16:29:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E6=80=BB=E6=AC=A1=E6=95=B0=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/net/tccn/timer/TimerTask.java | 10 +++++++++- src/main/java/net/tccn/timer/task/Task.java | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/tccn/timer/TimerTask.java b/src/main/java/net/tccn/timer/TimerTask.java index 1e78ff9..e1993b4 100644 --- a/src/main/java/net/tccn/timer/TimerTask.java +++ b/src/main/java/net/tccn/timer/TimerTask.java @@ -7,6 +7,7 @@ import net.tccn.timer.task.Task; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.Date; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Logger; /** @@ -15,6 +16,7 @@ import java.util.logging.Logger; public class TimerTask implements Task { private Logger logger = Logger.getLogger(this.getClass().getSimpleName()); private long startTime = System.currentTimeMillis(); + private AtomicInteger execCount = new AtomicInteger(); protected String name; private long theTime; private Scheduled scheduled; @@ -69,6 +71,10 @@ public class TimerTask implements Task { timerExecutor.remove(name); } + public int getExecCount() { + return execCount.get(); + } + public TimerExecutor getTimerExecutor() { return timerExecutor; } @@ -85,10 +91,12 @@ public class TimerTask implements Task { public void run() { //没有完成任务,继续执行 if (!isComplete) { + int count = execCount.incrementAndGet(); // 执行次数+1 + long start = System.currentTimeMillis(); job.execute(this); long end = System.currentTimeMillis(); - logger.finest(String.format("task [%s] : not complete -> %s, time: %s ms", getName(), isComplete ? "had complete" : "not complete;", end - start)); + logger.finest(String.format("task [%s] : not complete -> %s, time: %s ms, exec count: %s.", getName(), isComplete ? "had complete" : "not complete", end - start, count)); if (!isComplete) { timerExecutor.add(this, true); diff --git a/src/main/java/net/tccn/timer/task/Task.java b/src/main/java/net/tccn/timer/task/Task.java index 12a8a72..c488dab 100644 --- a/src/main/java/net/tccn/timer/task/Task.java +++ b/src/main/java/net/tccn/timer/task/Task.java @@ -60,4 +60,10 @@ public interface Task extends Runnable { TimerExecutor getTimerExecutor(); void setTimerExecutor(TimerExecutor timerExecutor); + + /** + * 得到总执行次数 + * @return + */ + int getExecCount(); }