大家好,现在用spring task 做定时任务,注解实现方式,但是在启动后,等待时间到时,却报错了,个人感觉貌似被shiro的访问拦截了。 找遍了google, 百度,无法解决,希望得到帮助,本人在线等。
图片说明图片说明
spring定时器TimerTask用法:
在tomcat服务启动,spring定时器容器加载时会执行定时器里的任务,可设置时间间隔和延迟执行时间,具体做法如下:
定时器Java代码:
package com.coalmine.desktop;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask;
public class Task extends TimerTask {
@Override
//定时器入口,run()里面是你的任务作业
public void run() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
System.out.println(sdf.format(date) + " 执行TimerTask定时器===============");
}
}
applicationContext.xml配置如下:
<!-- spring定时任务配置 -->
<bean id="deskTask" class="com.coalmine.desktop.Task"></bean>
<bean id="scheduledTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask">
<ref bean="deskTask" />
</property>
<!--任务执行周期 5s (此处单位是毫秒)-->
<property name="period">
<value>5000</value>
</property>
<!--延时10s 执行任务 -->
<property name="delay">
<value>10000</value>
</property>
</bean>
<!--启动定时器 -->
<bean id="timerBean"
class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref bean="scheduledTask" />
</list>
</property>
</bean>
OK,就这么简单,当启动服务后加载完定时器,延迟10秒后,每隔5秒执行一次run()
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。