//package com.trs.project.config;
//import com.trs.project.timer.BusinessTask2;
//import org.quartz.DisallowConcurrentExecution;
//import org.quartz.JobDetail;
//import org.quartz.Trigger;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
//import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;
//import org.springframework.scheduling.quartz.SchedulerFactoryBean;
//
///**
// * Quartz 定时任务配置类，负责创建
// * JobDetail对象
// * Trigger对象
// * Scheduler对象
// * @author Administrator
// */
//@Configuration
//public class QuartzConfig {
//    // 配置定时任务1 ， QuartzDemo q1第一个任务类对象
//    @Bean(name = "j1")
//    public MethodInvokingJobDetailFactoryBean firstJobDetail(BusinessTask2 q1) {
//        MethodInvokingJobDetailFactoryBean jobDetail = new MethodInvokingJobDetailFactoryBean();
//        // 是否并发执行
//        jobDetail.setConcurrent(false);
//        // 为需要执行的实体类对应的对象
//        jobDetail.setTargetObject(q1);
//        // 需要执行的方法
//        jobDetail.setTargetMethod("execute");
//        return jobDetail;
//    }
//    // 配置触发器1
//    @Bean(name="trigger1")
//    public CronTriggerFactoryBean cronTriggerFactoryBean(JobDetail j1) {
//        CronTriggerFactoryBean factory = new CronTriggerFactoryBean();
//        factory.setJobDetail(j1);
//        // 设置触发时间，每天23点执行
////        factory.setCronExpression("0 0 23 * * ?");
//        // 设置触发时间，从0秒开始，每3分钟执行一次。
//        factory.setCronExpression("0 */1 * * * ?");
//        return factory;
//    }
//
//
////    // 配置定时任务2, QuartzDemo2 q2第二个任务类对象
////    @Bean(name = "j2")
////    public MethodInvokingJobDetailFactoryBean secondJobDetail(EmpPolicySpider q2) {
////        MethodInvokingJobDetailFactoryBean jobDetail = new MethodInvokingJobDetailFactoryBean();
////        // 为需要执行的实体类对应的对象
////        jobDetail.setTargetObject(q2);
////        // 需要执行的方法
////        jobDetail.setTargetMethod("execute");
////        return jobDetail;
////    }
////    // 配置触发器2
////    @Bean(name = "trigger2")
////    public CronTriggerFactoryBean cronTriggerFactoryBean2(JobDetail j2) {
////        CronTriggerFactoryBean factory = new CronTriggerFactoryBean();
////        factory.setJobDetail(j2);
////        // 设置触发时间,从1秒开始，每10分钟执行一次
////        factory.setCronExpression("0 */1 * * * ?");
////        return factory;
////    }
//
//    // 配置Scheduler任务调度，t1与t2是触发器
//    @Bean(name = "scheduler")
//    public SchedulerFactoryBean schedulerFactory(Trigger trigger1) {
//        SchedulerFactoryBean bean = new SchedulerFactoryBean();
//        // 延时启动，应用启动1秒后才启动任务调度
//        bean.setStartupDelay(1);
//        // 注册触发器,可以注册多个，意味着同时调度多个任务。
//        bean.setTriggers(trigger1);
//        return bean;
//    }
//}
