1,定時任務
定時任務有三種實現方式,java的timer類,spring框架,quartz插件。
在Spring框架中,實現定時任務很簡單。常用的實現方式是使用注解@Schedule。
public class Scheduler{ @Scheduled(cron = "0 0 3 * * ?") public void demoSchedule() { doWork(); } }
然后在spring配置文件中加上掃描開關
<task:annotation-driven/>
2,定時任務開啟兩次
發現定時任務總是執行兩次,按照網上的說法,把context中的app設置為空之類的啥,反正試了沒效果!
我的解決方法是,單獨使用配置文件spring-schedule.xml配置任務。
/進行定時任務的類,將其定義為一個bean <bean id="test" class="com.service.TestImplel"></bean> //通過task標簽,定義定時功能 <task:scheduled-tasks> <task:scheduled ref="test" method="doWork" cron="0 0/5 ** * ?" /> </task:scheduled-tasks>
分析加載兩次原因是xml初始化一次,注解掃描一次,所以加載兩次,只要把注解單獨配置,指定啟動一次即可解決該問題。