Quartz中提供了兩種觸發器,分別是CronTrigger和SimpleTrigger。html
1. SimpleTriggeride
每隔若干毫秒來觸發歸入進度的任務。函數
2. CronTriggerthis
在特定「格林日曆」時刻觸發歸入進程的任務。spa
調度程序以下:code
public class TestQuartz { public void myTask() throws Exception { String tim = FileProperties.getMyProperty("Socket_TIM_ZZH"); System.out.println(tim); //定時器任務定義 Scheduler scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); //定時器任務 JobDetail testJob = new JobDetail("testJob", Scheduler.DEFAULT_GROUP, TestTask.class);
//CronTrigger觸發器 //Trigger trigger = new CronTrigger("testCronTrigger", Scheduler.DEFAULT_GROUP, tim.trim()); //結束時間 long end = System.currentTimeMillis() + 9000L; //執行10次,每3秒執行一次,到9秒後結束 SimpleTrigger trigger = new SimpleTrigger("test",null,new Date(),new Date(end),10,3000L); // 定時器任務監聽 scheduler.scheduleJob(testJob, trigger); } }
任務執行程序以下:orm
public class TestTask extends Thread implements Job{ //private static Logger logger = Logger.getLogger(TestTask.class.getName()); private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private Date today = null; public TestTask() { Calendar rightNow = Calendar.getInstance(); rightNow.add(Calendar.DATE,-1); this.today = rightNow.getTime(); } @Override public void execute(JobExecutionContext arg0) throws JobExecutionException { try { System.out.println("testTask:" + format.format(this.today) + "------------------------------------"); //logger.info("testTask:" + format.format(this.today) + "------------------------------------"); } catch (Exception e) { e.printStackTrace(); //logger.error("error:" + e.getMessage()); } } }
main函數:htm
public static void main(String[] args) { try { TestQuartz testQuartz = new TestQuartz(); testQuartz.myTask(); }catch(Exception e) { e.printStackTrace(); } }
除了引入quartz包,還要使用Commons-logging.jarblog
另外一種方式:https://www.cnblogs.com/ll409546297/p/7157702.html進程