springMVC使用scheduler

實現方式一  註解配置時間的方式

簡述:首先開啓spring的scheduler,需要在xml中配置,然後就是讓spring管理一個類的實例,在該類的方法中指定cron時間表達式即可。

1. application.xml開啓spring scheduler

<task:scheduler id="scheduler" pool-size="5"/>
<task:executor id="executor" pool-size="5"/>
<!--開啓註解使用方式-->
<task:annotation-driven executor="executor" scheduler="scheduler"/>

 

2. 託管任務類給spring

 2.1    任務類上增加@Component註解,託管給spring

@Component

 2.2 在任務類上指定任務內容的時間表達式(也就是在任務方法上寫@Scheduled(cron=........)

@Scheduled(cron = "0 44 23 * * ?")

3. 完成

 

實現方式二  在配置文件中配置時間的方式

簡述:方式一存在的一個缺點就是,通過@Scheduled註解寫入的時間表達式是硬編碼到類中的,如果我們想要以配置的方式動態傳入到它裏面就會很麻煩,而直接使用‘在xml中配置時間表達式’的方法就簡單很多了。

核心思路就是在xml中開啓scheduler並指定時間表達式變量,而該變量的值記錄在一個properties中,通過PropertyPlaceholderConfigurer類的加載方式讀取配置信息。

1. 創建任務類實例

    <bean id="job" class="com.tdt.auth.client.cms.scheduler.PmsScheduler" />

2. 開啓spring scheduler並指定任務

    <!--初始化一個scheduler-->
    <task:scheduler id="scheduler" pool-size="5"/>
    <!--<task:executor id="executor" pool-size="5"/>-->
    <!-給scheduler指定任務-->
    <task:scheduled-tasks scheduler="scheduler" >
        <task:scheduled ref="job" method="updatePermissions" cron="${auto_update_time}"/>
    </task:scheduled-tasks>

3. 完成

異步

對於異步的使用可以參考這篇文章,寫的很不錯:

cnblogs.com/technology-huangyan/p/9948434.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章