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(); }