图示:
Plan 实体类
package cn.entity; /** * 计划实体类 * */ public class Plan { private String date;//时间 private String task;//任务 public Plan(String date, String task) { this.date = date; this.task = task; } @Override public String toString() { return " 计划[date=" + date + ", task=" + task + "]"; } }
RemindService 业务逻辑类
package cn.service; import java.util.ArrayList; import java.util.List; import cn.entity.Plan; /** * 业务逻辑类 * */ public class RemindService { /** * 输出任务的内容 * */ public void outputPlan(String userName){ List<Plan> plans = getPlansForToday(userName); System.out.println(userName+"的提醒信息"); for (Plan plan : plans) { System.out.println(plan); } } /** * 得到今天的任务 */ public List<Plan> getPlansForToday(String userName){ List<Plan> list = new ArrayList<Plan>(); list.add(new Plan("2014-10-15 9:00", "地址:XXX")); list.add(new Plan("2014-10-20 9:00", "地址:CCC")); return list; } }
RemindJob 任务类
package cn.job; import java.util.Date; import org.quartz.Job; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import cn.service.RemindService; /** * 任务 * */ public class RemindJob implements Job { private RemindService service = new RemindService();//调用业务类 public void execute(JobExecutionContext jobContext) throws JobExecutionException{ //从 JobDetail 中取出参数 JobDataMap map = jobContext.getJobDetail().getJobDataMap(); String user = map.getString("user"); service.outputPlan(user); //绑定的触发器的名字和每次任务触发时间 System.out.println("触发器名:"+jobContext.getTrigger().getName()+"\t触发时间:" +new Date()+"\t任务名:"+jobContext.getJobDetail().getName()); } }
TestJob 测试类
package cn.test; import java.text.ParseException; import java.util.Calendar; import java.util.Date; import org.quartz.CronTrigger; import org.quartz.JobDataMap; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.SimpleTrigger; import org.quartz.impl.StdSchedulerFactory; import org.quartz.impl.calendar.AnnualCalendar; import cn.job.RemindJob; public class TestJob { public static void main(String[] args) throws SchedulerException,InterruptedException, ParseException { TestJob testJob = new TestJob(); //testJob.doRemind(); testJob.calendarAndCron(); } private void doRemind() throws SchedulerException,InterruptedException{ //1.创建一个任务(任务名,任务类) JobDetail job = new JobDetail("remindJob", "myGroup", RemindJob.class); //往 job 对象放入其它参数 JobDataMap map = job.getJobDataMap(); //放入参数 map.put("user", "李四"); //2.创建触发器(名字,运行次数(SimpleTrigger.REPEAT_INDEFINITELY 表示无限直到时间结束),时间间隔) SimpleTrigger simTrig = new SimpleTrigger("trigRemindJob", SimpleTrigger.REPEAT_INDEFINITELY, 3000); //开始时间为下一秒 simTrig.setStartTime(new Date(System.currentTimeMillis()+1000)); //创建调度器 SchedulerFactory sfc = new StdSchedulerFactory(); Scheduler sched = sfc.getScheduler(); //3.把任务和触发器绑定 sched.scheduleJob(job, simTrig); //计划任务开始 sched.start(); //当线程等待 10 秒 Thread.sleep(10000); //计划任务结束 sched.shutdown(); } private void calendarAndCron() throws SchedulerException,InterruptedException, ParseException{ JobDetail job = new JobDetail("remindJob", "group1", RemindJob.class); JobDataMap dataMap = job.getJobDataMap(); dataMap.put("user", "张三"); //每个工作日的 9 点 30 CronTrigger cronTrig = new CronTrigger("remindJob", "group1", "10 14 11 ? * MON-FRI"); //每个工作日的每隔四秒出现一次 //CronTrigger cronTrig = new CronTrigger("remindJob", "group1", "0/4 * * ? * MON-FRI"); SchedulerFactory sfc = new StdSchedulerFactory(); Scheduler sched = sfc.getScheduler(); //创建 Calendar AnnualCalendar cal = new AnnualCalendar(); //构建日期 Calendar myCal = Calendar.getInstance(); //1月 myCal.set(Calendar.MONDAY, Calendar.JANUARY); //1号 myCal.set(Calendar.DATE, 1); //设定要排除的日期 cal.setDayExcluded(myCal, true); //注册 Calendar ,排除元旦节 sched.addCalendar("NewYearHoliday", cal, true, true); //和触发器进行关联 cronTrig.setCalendarName("NewYearHoliday"); sched.scheduleJob(job, cronTrig); sched.start(); } }
效果图:
相关推荐
quartz自动调度的3种调度形式+传参 1.单纯的quartz调度 2.spring+quartz调度
Quartz Cron表达式
搭建springMVC+Mybatis+quartz+log4j+maven项目
搭建分布式springMVC+Mybatis+quartz+log4j+maven项目
Quartz+Job+Scheduling+Framework 详细介绍文档 页面清新可见
Quartz学习文档 Spring + Quartz配置详细实例 jar包 Quartz时间格式设置
quartz_2.2.1核心包+依赖包.zip
quartz的作业调度触发Cron表达式说明
springboot+quartz +mysql 核心代码
Quartz 的Cron时间设置
该资源含有Quartz开发包和cron生成器,可以很方便的生成自己需要的调度,并进行使用。Quartz是Job Scheduling(任务调度)领域的开源项目,可单独使用,也可和JavaSE,EE进行组合,是一个任务调度管理系统,可在特定的...
quartz定时任务的cron表达式配置的详细说明,以及一些具体示例。
Quartz Cron页面生成工具,整理好的。 在开发中,常常有一些任务,需要隔一段时间自动执行。 Cron能够满足。
cmd中运行 ”javar -jar 文件名 “ ,生成可视化窗口,方便 生成和解析Cron;从此怕忘记,再也不求人。
-- 调用频率设置 每天上午2点和下午5点 cron表达式 --> <bean id="runTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <value>0 0 2,17 * * ? <!-- 最终启动的配置...
quartz cron js生成器,可以直接嵌入html代码使用 喜欢点赞
quartz的cron表达式生成工具,quartz的cron表达式生成工具,解压后运行jar包即可
本项目来源与网络,本人对项目...直接通过mvn 倒入项目,在Spring-quartz-demo\src\main\webapp\sql 有sql 建立数据库,表 启动tomcat 直接访问http://localhost:8080/Spring-quartz-demo/task/taskList.htm 就可以使用