quartz任务定时任务创建

来源:互联网 发布:魔兽世界旧世界数据库 编辑:程序博客网 时间:2024/06/06 03:59

调度器:

/** * 任务调度器类 * @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。

原创粉丝点击