/**
* @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();
}
}
网友评论