定時任務@schedule開啟兩次問題解決


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初始化一次,注解掃描一次,所以加載兩次,只要把注解單獨配置,指定啟動一次即可解決該問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM