mirror of
https://gitee.com/wangkang/udf.git
synced 2026-10-29 16:25:12 +00:00
添加默认的触发器
This commit is contained in:
@@ -21,4 +21,10 @@ public interface ISchedulerLog {
|
||||
*/
|
||||
public void save(String log);
|
||||
|
||||
/**
|
||||
* 描述 : 清理日志
|
||||
*
|
||||
*/
|
||||
public void clearScheduledLog();
|
||||
|
||||
}
|
||||
|
||||
@@ -30,4 +30,10 @@ public interface ITriggerLog {
|
||||
*/
|
||||
public void delete(String fireInstanceId);
|
||||
|
||||
/**
|
||||
* 描述 : 清理日志
|
||||
*
|
||||
*/
|
||||
public void clearScheduledTriggerLog();
|
||||
|
||||
}
|
||||
|
||||
+89
-1
@@ -11,18 +11,25 @@ import java.util.Properties;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.quartz.JobDetail;
|
||||
import org.quartz.JobListener;
|
||||
import org.quartz.SchedulerListener;
|
||||
import org.quartz.Trigger;
|
||||
import org.quartz.TriggerListener;
|
||||
import org.quartz.spi.JobFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.config.PropertiesFactoryBean;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
|
||||
import org.springframework.scheduling.quartz.JobDetailFactoryBean;
|
||||
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
|
||||
|
||||
import com.egridcloud.udf.scheduler.job.ClearScheduledLog;
|
||||
import com.egridcloud.udf.scheduler.job.ClearScheduledTriggerLog;
|
||||
import com.egridcloud.udf.scheduler.listener.JobDetailListener;
|
||||
import com.egridcloud.udf.scheduler.listener.SchListener;
|
||||
import com.egridcloud.udf.scheduler.listener.TriggerDetailListener;
|
||||
@@ -36,6 +43,11 @@ import com.egridcloud.udf.scheduler.listener.TriggerDetailListener;
|
||||
@Configuration
|
||||
public class SchedulerConfig {
|
||||
|
||||
/**
|
||||
* 描述 : DEF_GROUP_NAME
|
||||
*/
|
||||
private static final String DEF_GROUP_NAME = "SystemAutoRun";
|
||||
|
||||
/**
|
||||
* 描述 : schedulerProperties
|
||||
*/
|
||||
@@ -64,13 +76,19 @@ public class SchedulerConfig {
|
||||
* @param schListener schListener
|
||||
* @param jobDetailListener jobDetailListener
|
||||
* @param triggerDetailListener triggerDetailListener
|
||||
* @param clearScheduledLogTrigger clearScheduledLogTrigger
|
||||
* @param clearScheduledTriggerLogTrigger clearScheduledTriggerLogTrigger
|
||||
* @return SchedulerFactoryBean
|
||||
* @throws IOException IOException
|
||||
*/
|
||||
@Bean
|
||||
public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource, JobFactory jobFactory,
|
||||
Properties quartzProperties, SchedulerListener schListener, JobListener jobDetailListener,
|
||||
TriggerListener triggerDetailListener) throws IOException {
|
||||
TriggerListener triggerDetailListener,
|
||||
@Qualifier("clearScheduledLogTrigger") Trigger clearScheduledLogTrigger,
|
||||
@Qualifier("clearScheduledTriggerLogTrigger") Trigger clearScheduledTriggerLogTrigger)
|
||||
throws IOException {
|
||||
//实例化
|
||||
SchedulerFactoryBean factory = new SchedulerFactoryBean();
|
||||
factory.setDataSource(dataSource);
|
||||
factory.setJobFactory(jobFactory);
|
||||
@@ -85,6 +103,8 @@ public class SchedulerConfig {
|
||||
factory.setSchedulerListeners(schListener);
|
||||
factory.setGlobalJobListeners(jobDetailListener);
|
||||
factory.setGlobalTriggerListeners(triggerDetailListener);
|
||||
//添加默认的job
|
||||
factory.setTriggers(clearScheduledLogTrigger, clearScheduledTriggerLogTrigger);
|
||||
//返回
|
||||
return factory;
|
||||
}
|
||||
@@ -134,4 +154,72 @@ public class SchedulerConfig {
|
||||
return new TriggerDetailListener();
|
||||
}
|
||||
|
||||
/**
|
||||
* 描述 : clearScheduledLogTrigger
|
||||
*
|
||||
* @param jobDetail jobDetail
|
||||
* @return CronTriggerFactoryBean
|
||||
*/
|
||||
@Bean(name = "clearScheduledLogTrigger")
|
||||
public CronTriggerFactoryBean clearScheduledLogTrigger(
|
||||
@Qualifier("clearScheduledLogJobDetail") JobDetail jobDetail) {
|
||||
CronTriggerFactoryBean factoryBean = new CronTriggerFactoryBean();
|
||||
factoryBean.setDescription("清理计划任务日志");
|
||||
factoryBean.setName("clearScheduledLogTrigger");
|
||||
factoryBean.setGroup(DEF_GROUP_NAME);
|
||||
factoryBean.setJobDetail(jobDetail);
|
||||
factoryBean.setCronExpression("0 0 1 * * ? ");
|
||||
return factoryBean;
|
||||
}
|
||||
|
||||
/**
|
||||
* 描述 : clearScheduledLogJobDetail
|
||||
*
|
||||
* @return JobDetailFactoryBean
|
||||
*/
|
||||
@Bean("clearScheduledLogJobDetail")
|
||||
public JobDetailFactoryBean clearScheduledLogJobDetail() {
|
||||
JobDetailFactoryBean factoryBean = new JobDetailFactoryBean();
|
||||
factoryBean.setDescription("清理计划任务日志");
|
||||
factoryBean.setName("clearScheduledLogJobDetail");
|
||||
factoryBean.setGroup(DEF_GROUP_NAME);
|
||||
factoryBean.setJobClass(ClearScheduledLog.class);
|
||||
factoryBean.setDurability(true);
|
||||
return factoryBean;
|
||||
}
|
||||
|
||||
/**
|
||||
* 描述 : clearScheduledTriggerLogTrigger
|
||||
*
|
||||
* @param jobDetail jobDetail
|
||||
* @return CronTriggerFactoryBean
|
||||
*/
|
||||
@Bean(name = "clearScheduledTriggerLogTrigger")
|
||||
public CronTriggerFactoryBean clearScheduledTriggerLogTrigger(
|
||||
@Qualifier("clearScheduledTriggerLogJobDetail") JobDetail jobDetail) {
|
||||
CronTriggerFactoryBean factoryBean = new CronTriggerFactoryBean();
|
||||
factoryBean.setDescription("清理计划任务执行日志");
|
||||
factoryBean.setName("clearScheduledTriggerLogTrigger");
|
||||
factoryBean.setGroup(DEF_GROUP_NAME);
|
||||
factoryBean.setJobDetail(jobDetail);
|
||||
factoryBean.setCronExpression("0 0 2 * * ? ");
|
||||
return factoryBean;
|
||||
}
|
||||
|
||||
/**
|
||||
* 描述 : clearScheduledTriggerLogJobDetail
|
||||
*
|
||||
* @return JobDetailFactoryBean
|
||||
*/
|
||||
@Bean("clearScheduledTriggerLogJobDetail")
|
||||
public JobDetailFactoryBean clearScheduledTriggerLogJobDetail() {
|
||||
JobDetailFactoryBean factoryBean = new JobDetailFactoryBean();
|
||||
factoryBean.setDescription("清理计划任务执行日志");
|
||||
factoryBean.setName("clearScheduledTriggerLogJobDetail");
|
||||
factoryBean.setGroup(DEF_GROUP_NAME);
|
||||
factoryBean.setJobClass(ClearScheduledTriggerLog.class);
|
||||
factoryBean.setDurability(true);
|
||||
return factoryBean;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* ClearScheduledLog.java
|
||||
* Created at 2017-06-01
|
||||
* Created by Administrator
|
||||
* Copyright (C) 2016 egridcloud.com, All rights reserved.
|
||||
*/
|
||||
package com.egridcloud.udf.scheduler.job;
|
||||
|
||||
import org.quartz.DisallowConcurrentExecution;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
import com.egridcloud.udf.scheduler.AbstractBaseJob;
|
||||
import com.egridcloud.udf.scheduler.ISchedulerLog;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* ClassName: ClearScheduledLog
|
||||
* </p>
|
||||
* <p>
|
||||
* Description: 清理计划任务日志
|
||||
* </p>
|
||||
* <p>
|
||||
* Author: wangkang
|
||||
* </p>
|
||||
* <p>
|
||||
* Date: 2014年3月7日
|
||||
* </p>
|
||||
*/
|
||||
@DisallowConcurrentExecution
|
||||
public class ClearScheduledLog extends AbstractBaseJob {
|
||||
|
||||
@Override
|
||||
protected void executeInternal(JobExecutionContext jobExecutionContext)
|
||||
throws JobExecutionException {
|
||||
ISchedulerLog schedulerLog = this.getApplicationContext().getBean(ISchedulerLog.class);
|
||||
if (schedulerLog != null) {
|
||||
schedulerLog.clearScheduledLog();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* ClearScheduledTriggerLog.java
|
||||
* Created at 2017-06-01
|
||||
* Created by Administrator
|
||||
* Copyright (C) 2016 egridcloud.com, All rights reserved.
|
||||
*/
|
||||
package com.egridcloud.udf.scheduler.job;
|
||||
|
||||
import org.quartz.DisallowConcurrentExecution;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
|
||||
import com.egridcloud.udf.scheduler.AbstractBaseJob;
|
||||
import com.egridcloud.udf.scheduler.ITriggerLog;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* ClassName: ClearScheduledTriggerLog
|
||||
* </p>
|
||||
* <p>
|
||||
* Description: 清理计划任务执行日志
|
||||
* </p>
|
||||
* <p>
|
||||
* Author: wangkang
|
||||
* </p>
|
||||
* <p>
|
||||
* Date: 2014年3月7日
|
||||
* </p>
|
||||
*/
|
||||
@DisallowConcurrentExecution
|
||||
public class ClearScheduledTriggerLog extends AbstractBaseJob {
|
||||
|
||||
@Override
|
||||
protected void executeInternal(JobExecutionContext jobExecutionContext)
|
||||
throws JobExecutionException {
|
||||
ITriggerLog triggerLog = this.getApplicationContext().getBean(ITriggerLog.class);
|
||||
if (triggerLog != null) {
|
||||
triggerLog.clearScheduledTriggerLog();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user