此内容基于Spring 3.0.5 版本运行,参考文档为spring-framework-reference-3.0.5.pdf
在spring3 中的task 命名空间。可以部分去取代 quartz,并且支持注解方式。但是如果使用更加复杂的任务调度。还是建议是使用quartz。以下就使用 task 和 quartz来进行任务调度的方法进行距离。
?使用 注解来 来调度任务
编写一个任务实例。
view plaincopy to clipboard
01./***********************************************************************
02. *
03. * TestJob.java
04. *
05. * ****所有,
06. * 受到法律的保护,任何公司或个人,未经授权不得擅自拷贝。
07. * @copyright Copyright: 2000-2011
08. * @creator 徐泽宇 <br/>
09. * @create-time 2011-6-27 下午11:51:16
10. * @revision $Id: *
11. ***********************************************************************/
12.package com.alcor.aerie.quartz;
13.import org.slf4j.Logger;
14.import org.slf4j.LoggerFactory;
15.import org.springframework.scheduling.annotation.Scheduled;
16.import org.springframework.stereotype.Service;
spring framework组件17.@Service
18.public class TestJob {
19. /**
20. * Logger for this class
21. */
22. private static final Logger logger = Logger(TestJob.class);
23. @Scheduled(fixedDelay = 1000)
24. public void work()
25. {
26. if (logger.isDebugEnabled()) {
27. logger.debug("work() - start"); //$NON-NLS-1$
28. }
29. logger.info("Spring Quartz的TestJob任务被调用!");
30. if (logger.isDebugEnabled()) {
31. logger.debug("work() - end"); //$NON-NLS-1$
32. }
33. }
34.}
注意其中的@Scheduled 标签
配置spring的l
view plaincopy to clipboard
01.<?xml version="1.0" encoding="UTF-8"?>
02.<beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance"
03. xmlns:context="/schema/context"
04. xmlns:task="/schema/task"
05. xsi:schemaLocation="/schema/beans
06. /schema/beans/spring-beans-3.0.xsd
07. /schema/fex
08. /schema/fex/spring-fex-1.5.xsd
09. /schema/task
10. /schema/task/spring-task-3.0.xsd
11. /schema/context
12. /schema/context/spring-context-3.0.xsd">
13.
14. <!-- 定时器开关 开始-->
15. <task:annotation-driven/>
16. <!-- 定时器开关 结束-->
17.
18.</beans>
注意:其中xmlns里面加
入 : xmlns:task="/schema/task" 。在 xsi:schemaLocation中加入 /schema/task /schema/task/spring-task-3.0.xsd。在配置中加入
<!-- 定时器开关 开始-->
<task:annotation-driven/>
<!-- 定时器开关 结束-->
如果开发的是web应用,那么在l里面加入
<listener>
<listener-class>org.t.ContextLoaderListener</listener-class>
</listener>
就可以在context启动的时候,自动扫描和装备这个被调度的任务。
?不使用注解,而通过配置来调度任务
编写一个任务实例
view plaincopy to clipboard
/***********************************************************************
*
* TestJob.java
*
* ****所有,
* 受到法律的保护,任何公司或个人,未经授权不得擅自拷贝。
* @copyright Copyright: 2000-2011
* @creator 徐泽宇 <br/>
* @create-time 2011-6-27 下午11:51:16
* @revision $Id: *
***********************************************************************/
package com.alcor.aerie.quartz;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
@Service
public class TestJob {
/**
* Logger for this class
*/
private static final Logger logger = Logger(TestJob.class);
public void work()
{
if (logger.isDebugEnabled()) {
logger.debug("work() - start"); //$NON-NLS-1$
}
logger.info("Spring Quartz的TestJob任务被调用!");
if (logger.isDebugEnabled()) {
logger.debug("work() - end"); //$NON-NLS-1$
}
}
}
注意:这里work方法上没有@Scheduled注解了
在l中加入调度方法
view plaincopy to clipboard
<task:scheduled-tasks>
<task:scheduled ref="testJob" method="work" cron="1/3 * 2-23 * * ?"/>
</task:scheduled-tasks>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论