定时器

/**

  • 定时器配置

*/
@EnableScheduling
@Configuration
public class SchedulerConfig {

public static final String TARGET_METHOD = "execute";
/**
 * 康明斯UDS定时表达式
 */
@Value("${spring.quartz.auto-startup}")
private boolean autoStartup;
/**
 * 康明斯UDS定时表达式
 */
@Value("${spring.quartz.trigger.kms-uds-cron-expression}")
private String kmsUdsCronExpression;
/**
 * 康明斯非紧急标定定时表达式
 */
@Value("${spring.quartz.trigger.kms-non-urgent-cal-cron-expression}")
private String kmsNonUrgentCalCronExpression;
/**
 * 康明斯紧急标定定时表达式
 */
@Value("${spring.quartz.trigger.kms-urgent-cal-cron-expression}")
private String kmsUrgentCalCronExpression;

/**
 * 定时总控器
 * @author albert.ding
 * @param cronTrigger
 * @param dataSource
 * @return
 */
@Bean("kmsScheduler")
public SchedulerFactoryBean schedulerFactory(@Qualifier("quartzDataSource")DataSource dataSource, 
											@Qualifier("kmsUdsCronTrigger")CronTrigger kmsUdsCronTrigger,
											@Qualifier("kmsNonUrgentCalCronTrigger")CronTrigger kmsNonUrgentCalCronTrigger,
											@Qualifier("kmsUrgentCalCronTrigger")CronTrigger kmsUrgentCalCronTrigger){
	SchedulerFactoryBean bean = new SchedulerFactoryBean();
	bean.setAutoStartup(autoStartup);
	bean.setStartupDelay(2);
	bean.setWaitForJobsToCompleteOnShutdown(true);
	//bean.setTriggers(kmsUdsCronTrigger, kmsNonUrgentCalCronTrigger, kmsUrgentCalCronTrigger);
	bean.setTriggers(kmsUdsCronTrigger);
	bean.setApplicationContextSchedulerContextKey("applicationContext");
	bean.setDataSource(dataSource);
	return bean;
} 
/**
 * 康明斯紧急标定 CronTrigger
 * @author albert.ding
 * @param jobDetail
 * @return
 */
@Bean("kmsUrgentCalCronTrigger")
public CronTriggerFactoryBean kmsUrgentCalCronTrigger(@Qualifier("kmsUrgentCalJobDetail") JobDetail jobDetail){
	CronTriggerFactoryBean bean = new CronTriggerFactoryBean();
	bean.setJobDetail(jobDetail);
	bean.setCronExpression(kmsUrgentCalCronExpression);
	return bean;
}
/**
 * 康明斯紧急标定 JobDetail
 * @author albert.ding
 * @param task
 * @return
 */
@Bean("kmsUrgentCalJobDetail")
public MethodInvokingJobDetailFactoryBean kmsUrgentCalJobDetail(@Qualifier("kmsUrgentCalJob") KmsUrgentCalJob job){
	MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean();
    bean.setTargetObject (job);
    bean.setTargetMethod (TARGET_METHOD);
    bean.setConcurrent (false);
    return bean;
}	
/**
 * 康明斯非紧急标定 CronTrigger
 * @author albert.ding
 * @param jobDetail
 * @return
 */
@Bean("kmsNonUrgentCalCronTrigger")
public CronTriggerFactoryBean kmsNonUrgentCalCronTrigger(@Qualifier("kmsNonUrgentCalJobDetail") JobDetail jobDetail){
	CronTriggerFactoryBean bean = new CronTriggerFactoryBean();
	bean.setJobDetail(jobDetail);
	bean.setCronExpression(kmsNonUrgentCalCronExpression);
	return bean;
}
/**
 * 康明斯非紧急标定 JobDetail
 * @author albert.ding
 * @param task
 * @return
 */
@Bean("kmsNonUrgentCalJobDetail")
public MethodInvokingJobDetailFactoryBean kmsNonUrgentCalJobDetail(@Qualifier("kmsNonUrgentCalJob") KmsNonUrgentCalJob job){
	MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean();
    bean.setTargetObject (job);
    bean.setTargetMethod (TARGET_METHOD);
    bean.setConcurrent (false);
    return bean;
}	
/**
 * 康明斯UDS CronTrigger
 * @author albert.ding
 * @param jobDetail
 * @return
 */
@Bean("kmsUdsCronTrigger")
public CronTriggerFactoryBean kmsUdsCronTrigger(@Qualifier("kmsUdsJobDetail") JobDetail jobDetail){
	CronTriggerFactoryBean bean = new CronTriggerFactoryBean();
	bean.setJobDetail(jobDetail);
	bean.setCronExpression(kmsUdsCronExpression);
	return bean;
}
/**
 * 康明斯UDS JobDetail
 * @author albert.ding
 * @param task
 * @return
 */
@Bean("kmsUdsJobDetail")
public MethodInvokingJobDetailFactoryBean kmsUdsJobDetail(@Qualifier("kmsUdsJob") KmsUdsJob job){
	MethodInvokingJobDetailFactoryBean bean = new MethodInvokingJobDetailFactoryBean();
    bean.setTargetObject (job);
    bean.setTargetMethod (TARGET_METHOD);
    bean.setConcurrent (false);
    return bean;
}

======================================================

quartz配置

quartz:
auto-startup: false
datasource:
myds:
url: jdbc:mysql://192.168.19.111:3306/quartz?useUnicode=true&characterEncoding=utf-8&useSSL=true&allowMultiQueries=true
username: root
password: ‘q#IwJ,c?gB/F’
driver-class-name: com.mysql.jdbc.Driver
job-store-type: jdbc
jdbc:
initialize-schema: never
trigger:
kms-uds-cron-expression: ‘0 0/10 * * * ? *’
kms-non-urgent-cal-cron-expression: ‘0 0/10 * * * ? *’
kms-urgent-cal-cron-expression: ‘0 0/10 * * * ? *’
properties:
org:
quartz:
jobStore:
class: org.quartz.impl.jdbcjobstore.JobStoreTX
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
misfireThreshold: 60000
useProperties: false
tablePrefix: QRTZ_
isClustered: true
clusterCheckinInterval: 15000
threadPool:
class: org.quartz.simpl.SimpleThreadPool
threadCount: 10
threadPriority: 5
threadsInheritContextClassLoaderOfInitializingThread: true
scheduler:
instanceName: KmsQuartzScheduler
instanceId: AUTO
skipUpdateCheck: true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值