`
mimang2007110
  • 浏览: 237192 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

手动修改和启动在spring配置文件中配置的定时器

 
阅读更多

1、创建业务处理类

 

public class TaskTestAction
{
    public void run()
    {
        System.out.println("测试定时器");
    }
}

 

2、在spring配置文件中配置定时器

 

<!-- 定时器业务类 -->
	<bean id="testTask" class="com.wkx.warning.controller.TaskTestAction"></bean>
	
	<!-- 定时器执行的业务类 -->
	<bean id="testDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject">
			<ref bean="testTask" />
		</property>
		<property name="targetMethod">
			<value>run</value>
		</property>
	</bean>
	
	<!-- 配置触发器,每隔多久触发一次 -->
	<bean id="testTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
		<property name="jobDetail">
			<ref bean="testDetail" />
		</property>
		<!-- 每隔多久执行一次,毫秒级 -->
		<property name="repeatInterval">
			<value>5000</value>
		</property>
	</bean>
	<!-- 通用定时器工厂 -->
	<bean id="testScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref local="testTrigger" />
			</list>
		</property>
		<property name="autoStartup" value="false"/>
		<property name="quartzProperties">
			<props>
				<prop key="org.quartz.threadPool.threadCount">2</prop>
			</props>
		</property>
	</bean>
	
	<!-- MAP对象,存储定时器 -->
	<bean name="testMap" class="java.util.HashMap">
		<constructor-arg>
			<map>
				<entry key="testScheduler" value-ref="testScheduler" />
			</map>
		</constructor-arg>
	</bean>

 

3、在controller代码中获取map对象,并更改和启动定时器信息

 

// scheMap应该是从spring配置文件中获取的
Scheduler std = scheMap.get("testScheduler");
// 获取触发器
SimpleTrigger t = (SimpleTrigger)std.getTrigger("testTrigger", Scheduler.DEFAULT_GROUP);
// 修改触发器的间隔世界
t.setRepeatInterval(10000);
// 更新定时器
std.rescheduleJob("testTrigger", Scheduler.DEFAULT_GROUP, t);
std.start();

 注:以上的scheMap是从配置文件中获取的,可以通过spring注入的方式获取,例如

 

@Resource(name = "testMap")
 private Map<String, Scheduler> scheMap;

 也可以自己读取spring配置文件获取

 

ApplicationContext ac = new FileSystemXmlApplicationContext("D:/apache-tomcat-7.0.25/webapps/ManageSystem/WEB-INF/conf/applicationContext.xml");
Map<String, StdScheduler> scheMap = (Map<String, StdScheduler>)ac.getBean("testMap");
 

 

 

分享到:
评论

相关推荐

    Spring定时器配置详解

    总结来说,Spring定时器的配置主要包括创建任务类、在配置文件中定义任务和调度规则,以及在Web应用中设置启动参数。通过这种方式,你可以轻松地在Spring应用中安排和管理周期性的后台任务,而无需手动干预。

    spring定时器启动两次原因及解决

    标题中的“spring定时器启动两次原因及解决”指的是在Spring框架中使用了定时任务功能,如Spring Boot的`@Scheduled`注解或者Spring Task模块,但遇到了定时任务被触发执行了两次的问题。这种情况可能是由于配置不当...

    spring定时器,定时调用任务配置

    要启用Spring Task,你需要在你的Spring配置文件(可能是`applicationContext.xml`或使用Java配置类)中添加以下配置: ```xml &lt;!-- 使用XML配置 --&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" ...

    spring和quartz的定时器的启动和停止例子

    本篇将深入探讨如何在Spring中启动和停止Quartz定时器。 首先,我们需要理解Spring和Quartz的基本概念。Spring是一个强大的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性。而...

    spring定时器实现源码

    要使用 Maven 构建包含定时任务的 Spring MVC 项目,你需要在 `pom.xml` 文件中添加必要的依赖,例如 Spring MVC 和 Spring Context: ```xml &lt;groupId&gt;org.springframework &lt;artifactId&gt;spring-context ...

    spring管理quart实现定时器功能

    2. **配置Spring**:在Spring的配置文件(如`beans_video.xml`)中,定义`SchedulerFactoryBean`,它是Spring对Quartz的封装,用于初始化和管理调度器。配置如下: ```xml &lt;bean id="scheduler" class="org.spring...

    spring定时器-quartz开发的步骤

    在Spring配置文件中,通过`JobDetailFactoryBean`和`CronTriggerFactoryBean`注册Job和Trigger,并将它们关联起来。 ```xml &lt;bean id="myJobDetail" class="org.springframework.scheduling.quartz....

    Spring中XML配置文件的十二个最佳方法.doc

    在Spring框架中,XML配置文件是应用的核心组成部分,用于定义和组织Bean的生命周期和依赖关系。本文将详细解析Spring中XML配置文件的十二个最佳实践,主要关注前六个方法。 1. **避免使用自动绑定(Autowiring)** ...

    spring 定时器 注解+xml 方式模板

    如果需要手动控制,可以使用`@EnableScheduling`注解在配置类上开启定时任务,或者在XML配置中使用`&lt;task:scheduler&gt;`来创建调度器。要关闭定时任务,可以停止Spring容器,或者在代码中调用`Scheduler#pauseAll()`。...

    spring 实现定时调度、定时器

    如果你的应用需要在运行时动态调整定时任务,可以使用`TaskScheduler`的`schedule()`或`reschedule()`方法,或者通过修改配置文件并重新加载。 5. **监控与管理** 为了方便管理和监控定时任务,你可以使用Spring ...

    springboot定时任务的动态开启关闭

    在Spring Boot应用的配置文件(`application.properties`或`application.yml`)中,我们可以设置全局的定时任务配置。例如,我们可以设置一个固定的延迟时间让定时任务开始执行: ```properties spring.task....

    Spring Quartz 定时器示例(Java工程版)

    - 在Spring配置文件中,我们需要配置SchedulerFactoryBean,这是启动和管理Quartz调度器的关键。例如: ```xml &lt;bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"&gt; ...

    spring quartz 表达式在线生成器

    通常,这样的示例会包含Spring配置文件(如`applicationContext.xml`或`application.yml`)、Java配置类、定时任务类(实现`org.quartz.Job`接口)以及触发器配置(使用`org.quartz.Trigger`)。 总的来说,了解和...

    定时器迁移方案

    在新环境中启动定时器服务,确保其能够正常运行并调度任务。 2.6 验证数据: 检查新环境中定时任务的执行结果是否与旧环境一致,确保数据处理正确。 2.7 验证邮件发送: 如果定时任务涉及到邮件通知,验证新...

    shiro+SpringMVC+Spring+mybatis+maven+mybatis 自动刷新+ Quartz scheduler 定时器

    在实际开发中,Quartz可以用来实现诸如数据清理、报表生成、定时任务推送等后台服务,而Shiro则负责用户的身份验证和权限控制,SpringMVC和Spring负责业务流程和依赖管理,MyBatis处理数据库交互。Maven则在整个开发...

    Spring+Quartz2

    在 Spring 配置文件中,我们可以这样设置: ```xml &lt;bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"&gt; &lt;bean id="cronTrigger" class="org.springframework....

    SpringMVC定时器

    在SpringMVC的配置文件(如:`spring-servlet.xml`)中,我们需要启用TaskExecutor和TaskScheduler。以下是一个基本的配置示例: ```xml &lt;bean id="taskExecutor" class="org.springframework.scheduling....

    Java中Spring使用Quartz任务调度定时器

    接下来,我们需要在Spring的配置文件`springMVC-servlet.xml`中启用定时任务扫描,并指定包含定时任务的包。通过`&lt;task:annotation-driven /&gt;`启用基于注解的定时任务处理,以及`&lt;context:component-scan&gt;`标签来...

    Spring自动执行方法

    综上所述,"Spring自动执行方法"主要涉及到Spring的定时任务功能,包括`@Scheduled`注解的使用,Cron表达式的配置,以及如何在配置类中启用和定制定时任务。通过`myeclipse完整项目`,开发者可以直接运行和学习这些...

    Quartz定时器,表达式自动生成工具

    在实际开发中,我们可以结合Spring框架来集成Quartz,这样可以更方便地管理和配置定时任务。Spring提供了对Quartz的全面支持,包括声明式任务调度和编程式任务调度,使得在Spring应用中使用Quartz变得简单易行。 总...

Global site tag (gtag.js) - Google Analytics