java 動態定時器
阿新 • • 發佈:2018-12-05
private ThreadPoolTaskScheduler threadPoolTaskScheduler; // 載入時建立定時器 { threadPoolTaskScheduler = new ThreadPoolTaskScheduler(); //初始化, threadPoolTaskScheduler.initialize(); } private ScheduledFuture<?> future; // 定時器本體 開啟定時器 public void setCron(final String cron) { this.cron = cron; stopCron(); future = threadPoolTaskScheduler.schedule(new Runnable() { @Override public void run() { try { //自己的 業務 } catch (Exception e) { e.printStackTrace(); } } }, new Trigger() { public Date nextExecutionTime(TriggerContext triggerContext) { if ("".equals(cron) || cron == null) return null; CronTrigger trigger = new CronTrigger(cron);// 定時任務觸發,可修改定時任務的執行週期 Date nextExecDate = trigger.nextExecutionTime(triggerContext); return nextExecDate; } }); } // 關閉定時器 public void stopCron() { if (future != null) { future.cancel(true); } }