spring quartz定时器配置-RAMJobStore方式配置

1.Quartz存储Job的方式分为三种:

  •     常用的RAMJobStore,RAMJobStore将Job相关信息保存在内存中;在程序启动时,从xml中装载Job信息或者通过代码动态添加任务到内存中,应用重新启动后,定时任务信息将会丢失
  •    另外两种为JobStoreTX和JobStoreCMT,使用这两种JobStore,quartz就会自动将Job的信息保存在数据库中,如果应用程序挂了或者重启,quartz会通过保存在数据库中的Job信息恢复定时任务。

2.RAMJobStore方式配置

  • 首先需要引入quartz所依赖的jar包
<dependency>
	<groupId>org.quartz-scheduler</groupId>
	<artifactId>quartz</artifactId>
	<version>2.2.1</version>
</dependency>
<dependency>
	<groupId>org.quartz-scheduler</groupId>
	<artifactId>quartz-jobs</artifactId>
	<version>2.2.1</version>
</dependency>
  • 创建quartz_jobs.xml文件用于配置调度器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation=" 
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd 
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd">


	<bean id="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
	  	<property name="autoStartup">
	        <value>true</value>
	    </property>
  		<property name="quartzProperties">  
			<props>  
				<prop key="org.quartz.plugin.shutdownhook.class">org.quartz.plugins.management.ShutdownHookPlugin</prop>
				<prop key="org.quartz.plugin.shutdownhook.cleanShutdown">true</prop>
				<prop key="org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread">true</prop>
			</props>  
		</property>
  	</bean>
</beans> 
  • 引入quartz_jobs.xml
    • 将quartz_jobs.xml添加在web.xml中
<param-value>
    classpath*:/spring-context*.xml,
    classpath*:/quartz_jobs.xml
</param-value>
  • 这样我们就可以使用quartz了

编码部分以后将会谈到,可以参考下面的链接:

http://itindex.net/detail/53315-spring-quartz-%E7%AE%A1%E7%90%86
http://ifeve.com/quartz-5-simpletrigger/


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,可以使用Quartz框架来实现定时任务。下面是一个简单的配置示例: 1. 添加依赖 在pom.xml中添加Quartz依赖: ```xml <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version> </dependency> ``` 2. 配置Job和Trigger 在程序中定义一个Job,示例代码如下: ```java @Component public class MyJob implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { // 定时任务执行的逻辑 } } ``` 然后定义一个Trigger,示例代码如下: ```java @Component public class MyTrigger { @Bean public JobDetail jobDetail() { return JobBuilder.newJob(MyJob.class) .withIdentity("myJob") .storeDurably() .build(); } @Bean public Trigger trigger() { return TriggerBuilder.newTrigger() .forJob(jobDetail()) .withIdentity("myTrigger") .withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")) // 每5秒执行一次 .build(); } } ``` 3. 配置Scheduler 创建一个SchedulerFactoryBean,配置其中的Scheduler实例,示例代码如下: ```java @Configuration public class QuartzConfig { @Autowired private MyTrigger myTrigger; @Bean public SchedulerFactoryBean schedulerFactoryBean() { SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); schedulerFactoryBean.setTriggers(myTrigger.trigger()); return schedulerFactoryBean; } } ``` 4. 启动应用程序 在应用程序启动时,Scheduler会自动启动,定时任务也会随之开始执行。 注意事项: - 如果需要并发执行Job,可以在Job类上添加注解@DisallowConcurrentExecution。 - 如果需要持久化Job信息,可以配置JobStore,例如使用JDBCJobStore将Job信息存储到数据库中。 - 如果需要动态创建和管理Job和Trigger,可以使用JobDetailFactory和TriggerFactory来创建Job和Trigger,并使用Scheduler来管理它们。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值