spring實現定時任務的兩種方式


本文為博主原創,未經允許不得轉載

       項目中要經常事項定時功能,在網上學習了下用spring的定時功能,基本有兩種方式,在這里進行簡單的總結,

以供后續參考,此篇只做簡單的應用。

       1.在spring-servlet.xml文件中加入task的命名空間:

xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/task
        http://www.springframework.org/schema/task/spring-task-4.0.xsd"

      然后使用task配置掃描注解

<!-- 定時任務 -->
    <task:annotation-driven scheduler="qbScheduler" mode="proxy"/>  
    <task:scheduler id="qbScheduler" />  

    此時就可以直接使用@Scheduled(cron = "時間格式串"),應用該注解就可以實現定時的功能

 @Scheduled(cron = "0/5 * * * * ?")  //每隔5秒執行一次定時任務
    public void consoleInfo(){
        System.out.println("定時任務");
    }

 

第二種方法為:不使用注解實現定時任務,將定時的功能在spring配置文件中實現。

xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation=" http://www.springframework.org/schema/task   
        http://www.springframework.org/schema/task/spring-task-3.0.xsd”


<description> 定時任務 </description>
//定時注解驅動 <task:annotation-driven /> //進行定時任務的類,將其定義為一個bean <bean id="spaceStatisticsService" class="com.pojo.system.manager.sigar.impl.SpaceStatisticsServiceImpl"></bean>
//通過task標簽,定義定時功能 <task:scheduled-tasks> <task:scheduled ref="spaceStatisticsService" method="statisticSpace" cron="59 59 23 * * ?" /> </task:scheduled-tasks>

要實現的代碼部分為:

       

@Service
public class SpaceStatisticsServiceImpl implements SpaceStatisticsService
{
    @Override
    public void statisticSpace()
    {
        System.out.println("實現定時功能");
    }
}

 

 

總結:兩種方法都能實現定時的功能,但明顯第一種方式會比較簡潔,而且更加方便。


免責聲明!

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



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