我试图将Spring Scheduling与'scheduled-tasks'一起使用.我可以使用XmlBeanFactory加载spring上下文,并获取调度程序bean.但我不确定下一步.文档暗示任务应该自动启动 - 也许只有当我在像Tomcat这样的容器中加载上下文时?在使用XmlBeanFactory加载时是否可以启动任务?
下面是简化的java&spring配置.
public class SchedulingTest {
public static void main(String[] args) throws Exception {
Resource resource = new FileSystemResource("\\my_spring_file.xml");
BeanFactory factory = new XmlBeanFactory(resource);
ThreadPoolTaskScheduler scheduler = (ThreadPoolTaskScheduler) factory.getBean("myScheduler");
// -=-=-=-=-=
// NOW WHAT ?
// -=-=-=-=-=
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">
<task:scheduler id="myScheduler" pool-size="10" />
<task:scheduled-tasks scheduler="myScheduler">
<task:scheduled ref="EmailPollingTask" method="readAndProcessEmails"
fixed-delay="30000" />
</task:scheduled-tasks>
Run Code Online (Sandbox Code Playgroud)
Bean工厂仅提供ApplicationContext功能的子集.处理bean生命周期是我认为缺少的功能之一.尝试创建ApplicationContext:
ApplicationContext ctx = new FileSystemXmlApplicationContext("\\my_spring_file.xml");
Run Code Online (Sandbox Code Playgroud)
我希望自动启动计划任务.
| 归档时间: |
|
| 查看次数: |
14777 次 |
| 最近记录: |