quartz任务定时任务创建
2017-09-18 16:56
190 查看
调度器:
创建要执行的定时任务:
调度器装载定时任务job。
/** * 任务调度器类 * @author wwr * 调度任务:定时发送信息类:SendMsgForPersonTimmer;调度时间:五分钟 */ public class TaskScheduler { private static org.slf4j.Logger _log = LoggerFactory.getLogger(MainScheduler.class); //创建调度器 public static Scheduler getScheduler()throws SchedulerException{ SchedulerFactory schdulerFactory = new StdSchedulerFactory(); return schdulerFactory.getScheduler(); } /** * 任务调度 * @param jobClass 任务类 * @param job1 任务名 * @param job1Group 任务组别 * @param trigger1 触发器名字 * @param triggerGroup 触发器组别 * @throws SchedulerException * @throws ParseException */ public static void schedulerJob(Object jobClass,String job1,String job1Group,String trigger1,String triggerGroup)throws SchedulerException, ParseException{ Class<? extends Job> job = (Class<? extends Job>) jobClass.getClass(); //创建任务 JobDetail jobDetail = JobBuilder.newJob(job).withIdentity(job1,job1Group).build(); //创建触发器,三秒延迟 Long time = System.currentTimeMillis()+3*1000L;//设置3秒后启动任务 Date startTime = new Date(time); //Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group3").withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInHours(10).repeatForever()).build(); Trigger trigger = TriggerBuilder.newTrigger().withIdentity(trigger1,triggerGroup).startAt(startTime).withSchedule(CronScheduleBuilder.cronSchedule("5/0 * * * * ?")).build();//设置五分钟执行一次任务 Scheduler scheduler = getScheduler(); //将任务及触发器放入调度器 scheduler.scheduleJob(jobDetail, trigger); //调度器开始调度任务 scheduler.start(); }
创建要执行的定时任务:
/** * 定时检测专家邮件状态是否正常 * 未发的话给专家发送邮件 * @author wwr * */ public class SendMsgForPersonTimmer implements Job{ @Override public void execute(JobExecutionContext context) throws JobExecutionException { //检查邮件状态 List<ExpertMailModel> mailList = ExpertMailModel.dao.getMail(); for(ExpertMailModel msg:mailList){ //判断邮件状态 if(Integer.parseInt(String.valueOf(msg.get("STATUS")))==0){ //发送邮件 String sjr=msg.getStr("RECEIVE_MAIL"); String fsnr=msg.getStr("CONTENT"); MailKit.send(sjr,Arrays.asList(sjr), "抽取专家提醒 ", fsnr); //更新邮件记录表的邮件发送时间 和状态 msg.set("SEND_DATE", Timestamp.valueOf(DateUtil.getNow())); msg.set("STATUS", 1); msg.update(); } //判断短信状态 if(Integer.parseInt(String.valueOf(msg.get("SHORTMSGSTATUS")))==0){ String telPhone = msg.get("TELPHONE"); String personName = msg.get("EXPERT_NAME");//专家姓名 String project = msg.get("PROJECTNAME");//项目名称 String group = msg.get("GROUPNAME");//项目组别名称 //设置短信内容 String msgContent = "【山西晋路软件有限公司】"+personName+":您已被"+project+"项目抽取作为"+group+"专家进行评审,请登录邮箱确认是否能按时参加!"; int feedBack = SendShortMsg.sendMsg(telPhone, personName, project, group); if(feedBack==1){ msg.set("SHORTMSGCONTENT", msgContent); msg.set("SHORTMSGSTATUS", 1); msg.update(); }else{ System.out.println("短信发送失败!!!"); } } } }
调度器装载定时任务job。
相关文章推荐
- 使用Quartz创建定时任务
- quartz 2.x 定时任务创建,修改,删除,执行的工具类
- ssm+quartz创建定时任务
- ssh项目中使用quartz来创建自己的定时任务
- quartz定时任务创建成功但无法生成实例
- Quartz.net 的简单使用,创建定时任务
- [C#]使用Quartz.NET来创建定时工作任务
- Quartz定时任务嵌套,创建不同的Scheduler实例问题
- 使用Quartz创建定时任务
- 使用Spring(17)Spring中的定时调度(Scheduling)--传统方式创建Quartz任务
- java quartz框架创建定时任务异常: Trigger does not reference given job!
- quartz 执行定时任务配置及案例
- SQL2008如何创建定时任务作业
- quartz定时任务中常用的cron表达式
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- 用Quartz处理定时执行的任务
- Quartz定时任务cron表达式
- 任务调度开源框架Quartz动态添加、修改和删除定时任务
- quartz定时任务中常用的cron表达式