package com.primeton.quartzs.conf;
import com.primeton.quartzs.job.myTest;
import org.quartz.*;
import org.quartz.ee.servlet.QuartzInitializerListener;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import java.io.IOException;
@Configuration
public class QuartzConfig {
@Bean(name = "SchedulerFactory")
public SchedulerFactoryBean schedulerFactoryBean() throws IOException {
SchedulerFactoryBean factory = new SchedulerFactoryBean();
//用于quartz集群,QuartzScheduler 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了
factory.setOverwriteExistingJobs(true);
//任务调度监听类
//factory.setGlobalTriggerListeners(triggerListenerLogMonitor());
return factory;
}
/*
* quartz初始化监听器
*/
@Bean
public QuartzInitializerListener executorListener() {
return new QuartzInitializerListener();
}
// @Bean
// public TriggerListenerLogMonitor triggerListenerLogMonitor() {
// return new TriggerListenerLogMonitor();
// }
/*
* 通过SchedulerFactoryBean获取Scheduler的实例
*/
@Bean(name = "Scheduler")
public Scheduler scheduler() throws IOException {
Scheduler scheduler = schedulerFactoryBean().getScheduler();
//添加同步任务 author:sujin
addmyTestJob(scheduler);
return scheduler;
}
/**
* 新增一个定时任务(测试)
* @param scheduler
* @author sujin
*/
private void addmyTestJob(Scheduler scheduler){
String startJob = "true";//是否开始
String jobName = "DATAMART_SYNC";
String jobGroup = "DATAMART_SYNC";
String cron = "0 0/1 * * * ?";//定时的时间设置
String className = myTest.class.getName();
if (startJob != null && startJob.equals("true")) {
addCommonCronJob(jobName, jobGroup, cron, scheduler, className);
} else {
deleteCommonJob(jobName, jobGroup, scheduler);
}
}
//end...
private void deleteCommonJob(String jobName, String jobGroup, Scheduler scheduler) {
JobKey jobKey = JobKey.jobKey(jobName, jobGroup);
try {
scheduler.pauseJob(jobKey);//先暂停任务
scheduler.deleteJob(jobKey);//再删除任务
} catch (SchedulerException e) {
e.printStackTrace();
}
}
/**
* 添加一些定时任务,如日志清理任务
*/
private void addCommonCronJob(String jobName, String jobGroup, String cron, Scheduler scheduler, String className) {
try {
TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup);
//任务触发
Trigger checkExist = (CronTrigger) scheduler.getTrigger(triggerKey);
if (checkExist == null) {
JobDetail jobDetail = null;
jobDetail = JobBuilder.newJob((Class<? extends Job>) Class.forName(className))
.requestRecovery(true)//当Quartz服务被中止后,再次启动或集群中其他机器接手任务时会尝试恢复执行之前未完成的所有任务
.withIdentity(jobName, jobGroup)
.build();
jobDetail.getJobDataMap().put("jobName", jobName);
jobDetail.getJobDataMap().put("jobGroup", jobGroup);
CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
/*withMisfireHandlingInstructionDoNothing
——不触发立即执行
——等待下次Cron触发频率到达时刻开始按照Cron频率依次执行
withMisfireHandlingInstructionIgnoreMisfires
——以错过的第一个频率时间立刻开始执行
——重做错过的所有频率周期后
——当下一次触发频率发生时间大于当前时间后,再按照正常的Cron频率依次执行
withMisfireHandlingInstructionFireAndProceed
——以当前时间为触发频率立刻触发一次执行
——然后按照Cron频率依次执行*/
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity(jobName, jobGroup)
.withSchedule(cronScheduleBuilder.withMisfireHandlingInstructionIgnoreMisfires())
.build();
scheduler.scheduleJob(jobDetail, trigger);
} else {
scheduler.deleteJob(JobKey.jobKey(jobName, jobGroup));
addCommonCronJob(jobName, jobGroup, cron, scheduler, className);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
SpringBoot整合Quartz任务定时调度
共120个文件
xml:97个
class:8个
java:5个
需积分: 49 30 下载量 155 浏览量
2018-06-08
09:42:16
上传
评论
收藏 123KB ZIP 举报
温馨提示
SpringBoot整合Quartz任务定时调度,可以参考我的博客进行学习https://blog.csdn.net/sujin_/article/details/80615823
资源推荐
资源详情
资源评论
收起资源包目录
SpringBoot整合Quartz任务定时调度 (120个子文件)
QuartzConfig.class 5KB
LoginController.class 1KB
TriggerListenerLogMonitor.class 1KB
MyBook.class 1KB
QuartzsApplication.class 720B
myTime.class 718B
QuartzsApplicationTests.class 639B
MyBookMapper.class 426B
mvnw.cmd 5KB
freemarker.ftl 143B
.gitignore 268B
quartzs.iml 11KB
maven-wrapper.jar 46KB
QuartzConfig.java 5KB
ScheduleLogMonitor.java 3KB
myTest.java 360B
QuartzsApplicationTests.java 338B
QuartzsApplication.java 315B
mvnw 6KB
application.properties 691B
application.properties 691B
jdbc.properties 153B
maven-wrapper.properties 110B
workspace.xml 41KB
uiDesigner.xml 9KB
generatorConfig.xml 5KB
pom.xml 4KB
MyBookMapper.xml 3KB
Maven__org_springframework_boot_spring_boot_starter_data_mongodb_2_0_2_RELEASE.xml 807B
Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_0_2_RELEASE.xml 793B
Maven__org_springframework_boot_spring_boot_starter_freemarker_2_0_2_RELEASE.xml 793B
Maven__org_springframework_boot_spring_boot_starter_data_redis_2_0_2_RELEASE.xml 793B
Maven__org_springframework_boot_spring_boot_starter_logging_2_0_2_RELEASE.xml 772B
Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_2_RELEASE.xml 765B
Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_2_RELEASE.xml 758B
Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_1_3_2.xml 754B
Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_5.xml 753B
Maven__org_springframework_boot_spring_boot_starter_json_2_0_2_RELEASE.xml 751B
Maven__org_springframework_boot_spring_boot_starter_jdbc_2_0_2_RELEASE.xml 751B
Maven__org_springframework_boot_spring_boot_starter_test_2_0_2_RELEASE.xml 751B
Maven__org_springframework_boot_spring_boot_starter_web_2_0_2_RELEASE.xml 744B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 724B
Maven__org_springframework_data_spring_data_keyvalue_2_0_7_RELEASE.xml 723B
Maven__org_springframework_spring_context_support_5_0_6_RELEASE.xml 717B
Maven__org_springframework_boot_spring_boot_starter_2_0_2_RELEASE.xml 716B
Maven__org_springframework_data_spring_data_mongodb_2_0_7_RELEASE.xml 716B
Maven__org_springframework_data_spring_data_commons_2_0_7_RELEASE.xml 716B
Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_1_3_2.xml 712B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_5.xml 712B
Maven__org_springframework_data_spring_data_redis_2_0_7_RELEASE.xml 702B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_5.xml 698B
Maven__org_hibernate_validator_hibernate_validator_6_0_9_Final.xml 698B
Maven__org_springframework_boot_spring_boot_test_2_0_2_RELEASE.xml 695B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_31.xml 684B
Maven__org_springframework_spring_expression_5_0_6_RELEASE.xml 682B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml 668B
Maven__org_springframework_spring_context_5_0_6_RELEASE.xml 661B
Maven__org_springframework_boot_spring_boot_2_0_2_RELEASE.xml 660B
Maven__org_springframework_spring_webmvc_5_0_6_RELEASE.xml 654B
Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_31.xml 649B
Maven__org_springframework_spring_beans_5_0_6_RELEASE.xml 647B
Maven__com_fasterxml_jackson_core_jackson_databind_2_9_5.xml 647B
Maven__org_springframework_spring_jdbc_5_0_6_RELEASE.xml 640B
Maven__org_springframework_spring_test_5_0_6_RELEASE.xml 640B
Maven__org_springframework_spring_core_5_0_6_RELEASE.xml 640B
Maven__io_projectreactor_reactor_core_3_1_7_RELEASE.xml 639B
Maven__javax_validation_validation_api_2_0_1_Final.xml 635B
Maven__javax_annotation_javax_annotation_api_1_3_2.xml 635B
Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_31.xml 635B
Maven__org_springframework_spring_oxm_5_0_6_RELEASE.xml 633B
Maven__org_springframework_spring_web_5_0_6_RELEASE.xml 633B
Maven__org_springframework_spring_jcl_5_0_6_RELEASE.xml 633B
Maven__org_springframework_spring_aop_5_0_6_RELEASE.xml 633B
Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml 632B
Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml 632B
compiler.xml 626B
Maven__org_springframework_spring_tx_5_0_6_RELEASE.xml 626B
Maven__org_reactivestreams_reactive_streams_1_0_2.xml 619B
Maven__com_fasterxml_jackson_core_jackson_core_2_9_5.xml 619B
Maven__io_netty_netty_transport_4_1_24_Final.xml 617B
Maven__io_lettuce_lettuce_core_5_0_4_RELEASE.xml 611B
Maven__io_netty_netty_resolver_4_1_24_Final.xml 610B
Maven__org_mongodb_mongodb_driver_core_3_6_3.xml 608B
Maven__io_netty_netty_handler_4_1_24_Final.xml 603B
Maven__net_bytebuddy_byte_buddy_agent_1_7_11.xml 602B
Maven__mysql_mysql_connector_java_5_1_46.xml 598B
Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml 597B
Maven__io_netty_netty_buffer_4_1_24_Final.xml 596B
Maven__io_netty_netty_common_4_1_24_Final.xml 596B
Maven__ch_qos_logback_logback_classic_1_2_3.xml 592B
Maven__io_netty_netty_codec_4_1_24_Final.xml 589B
Maven__org_hamcrest_hamcrest_library_1_3.xml 577B
Maven__org_mongodb_mongodb_driver_3_6_3.xml 573B
Maven__org_mybatis_mybatis_spring_1_3_2.xml 573B
Maven__ch_qos_logback_logback_core_1_2_3.xml 571B
Maven__com_jayway_jsonpath_json_path_2_4_0.xml 570B
Maven__net_minidev_accessors_smart_1_2.xml 566B
Maven__org_mockito_mockito_core_2_15_0.xml 566B
Maven__org_freemarker_freemarker_2_3_28.xml 564B
Maven__org_skyscreamer_jsonassert_1_5_0.xml 561B
共 120 条
- 1
- 2
资源评论
湮顾千古
- 粉丝: 185
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功