本方式会在程序启动后单独开启一个线程去执行,慎用
- 建立一个Java类,并实现Runnable接口
import java.util.Date;
public class StartupTask implements Runnable{
@Override
public void run() {
System.out.println(new Date()+" ScheduledExecutorTask...");
}
}
- Spring配置
<!-- 使用Spring的任务调度类ScheduledExecutorTask -批量获取舆情数据定时任务 -->
<bean id="startupTask " class="com.web.scheduleTask.StartupTask" />
<bean id="startupTaskScheduledTask" class="org.springframework.scheduling.concurrent.ScheduledExecutorTask">
<!-- 程序启动后延迟1秒执行第一次任务 -->
<property name="delay" value="3000" />
<!-- 每次任务间隔0秒 0表示只执行一次,毫秒 -->
<property name="period" value="2000" />
<!-- 配置主任务 -->
<property name="runnable" ref="startupTask" />
</bean>
<bean id="timerFactory" class="org.springframework.scheduling.concurrent.ScheduledExecutorFactoryBean">
<property name="scheduledExecutorTasks">
<list>
<ref bean="startupTaskScheduledTask" />
<!-- 如有多任务,可以将任务bean放到list中 -->
</list>
</property>
</bean>