Keine Beschreibung

TaskJob.java 1.2KB

    package com.ekexiu.portal.job; import java.text.SimpleDateFormat; import java.util.Date; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import org.jfw.apt.annotation.Bean; import org.jfw.util.bean.AfterBeanFactory; import org.jfw.util.bean.BeanFactory; @Bean public class TaskJob implements AfterBeanFactory { @Override public void handle(BeanFactory bf) throws Throwable { TaskJobEntry tje = (TaskJobEntry) bf.getBean("com_ekexiu_portal_job_TaskJobEntry"); long delayTime = tje.getDelayTime(); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); Date date = sdf.parse(tje.getTaskTime()); long task = date.getTime(); long taskTime = task - System.currentTimeMillis(); taskTime = taskTime > 0 ? taskTime : delayTime + taskTime; ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor(); // 第二个参数为首次执行的延时时间,第三个参数为定时执行的间隔时间 // service.scheduleAtFixedRate(tje, tje.getStartTime(), tje.getIntervalTime(), TimeUnit.SECONDS); service.scheduleAtFixedRate(tje, taskTime, delayTime, TimeUnit.MILLISECONDS); } }