diff --git a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java index 3816343f..57c16e77 100644 --- a/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java +++ b/xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java @@ -171,7 +171,7 @@ public class JobScheduleHelper { // align second try { - TimeUnit.MILLISECONDS.sleep(System.currentTimeMillis()%1000 ); + TimeUnit.MILLISECONDS.sleep(1000 - System.currentTimeMillis()%1000 ); } catch (InterruptedException e) { if (!toStop) { logger.error(e.getMessage(), e); @@ -181,7 +181,6 @@ public class JobScheduleHelper { int lastSecond = -1; while (!toStop) { - long start = System.currentTimeMillis(); try { // second data List ringItemData = new ArrayList<>(); @@ -219,11 +218,10 @@ public class JobScheduleHelper { logger.error(">>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread error:{}", e); } } - long cost = System.currentTimeMillis() - start; // next second, align second try { - TimeUnit.MILLISECONDS.sleep(1000-cost); + TimeUnit.MILLISECONDS.sleep(1000 - System.currentTimeMillis()%1000); } catch (InterruptedException e) { if (!toStop) { logger.error(e.getMessage(), e);