quartz ----> Simpletrigger(触发器

2020-04-29  本文已影响0人  刘小刀tina
/**
 * @program: demo-spring-batch
 * @description
 * @author: tina.liu
 * @create: 2020-04-29 08:16
 **/
@Slf4j
@PersistJobDataAfterExecution
public class HelloJobTrigger implements Job {
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {

        //日期格式
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        //打印trigger相关的信息
        log.info("trigger的信息,组名是:"+context.getTrigger().getKey().getGroup() +",名字是:"+
                context.getTrigger().getKey().getName()+",类是:"+
                context.getTrigger().getKey().getClass());
        //打印 trigger任务开始和结束的时间
        log.info("任务开始时间:"+dateFormat.format(context.getTrigger().getStartTime())+
                "结束的时间"+dateFormat.format(context.getTrigger().getEndTime()));

    }
}

//创建一个类
class  HelloSchedulerDemoTrigger{

    public static void main(String[] args) throws SchedulerException {

        //创建时间的变量
        Date startTime =  new Date();
        startTime.setTime(startTime.getTime()+3000);

        Date endTime =  new Date();
        endTime.setTime(endTime.getTime()+10000);


        //1.获取调度器
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        //2 获取任务实例 jobDetail
        JobDetail jobDetail = JobBuilder.newJob(HelloJobTrigger.class)
                .usingJobData("msg", "tina参数")//传递参数
                .withIdentity("job1", "group1") //定义名称
                .build();
        //3 获取触发器trigger
        Trigger trigger = TriggerBuilder.newTrigger()
                .withIdentity("trigger1", "group1") //定义名称
                .startAt(startTime)//开始时间
                .endAt(endTime)//结束时间
                .build();
        //4 让调度器关联任务和触发器,保证按照触发器定义的条件执行任务
        scheduler.scheduleJob(jobDetail,trigger);
        //5 启动
          scheduler.start();
    }

}


上一篇下一篇

猜你喜欢

热点阅读