我正在寻找有关如何在春季运行计划任务的示例。我目前正在使用xml配置和spring 3.2。我找到了他们的计划任务的文档页面,但想要一个更简单的例子来开始。 Here is a link to the docs
我在哪里配置调度bean?我希望它们每天运行,一次只运行一个任务。
答案 0 :(得分:2)
将以下内容添加到spring xml:
<task:annotation-driven/>
创建一个类:
import javax.inject.Named;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
@Named("funBean")
public class FunBean {
private static final Logger slf4jLogger = LoggerFactory.getLogger(FunBean.class);
@Scheduled(fixedDelay = 5000)
public void doSomething() {
slf4jLogger.info("I am working");
}
}
这应该让你去。你可以像在任何一个spring bean一样在你的xml文件中配置有趣的bean定义。
答案 1 :(得分:0)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<bean id="worker" class="net.bitegroup.smart.Worker">
</bean>
<bean id="scheduledTask" class="org.springframework.scheduling.concurrent.ScheduledExecutorTask">
<property name="delay" value="1000" />
<property name="period" value="2000" />
<property name="runnable" ref="worker" />
</bean>
<bean id="scheduledThread" class="org.springframework.scheduling.concurrent.ScheduledExecutorFactoryBean">
<property name="scheduledExecutorTasks" ref="scheduledTask" />
</bean>
</beans>