Spring Schedule 定時

簡介Spring Scheduler裏有兩個概念:任務(Task)和運行任務的框架(TaskExecutor/TaskScheduler)。TaskExecutor顧名思義,是任務的執行器,允許我們異步執行多個任務。TaskScheduler是任務調度器,來運行未來的定時任務。觸發器Trigger可以決定定時任務是否該運行了,最常用的觸發器是CronTrigger,具體用法會在下面詳細介紹。Spring內置了多種類型的TaskExecutor和TaskScheduler,方便用戶根據不同業務場景選擇。

運行

xml配置Spring Scheduler的話,這樣就行了:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xmlns:task="http://www.springframework.org/schema/task"

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

                           http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd">

    <task:scheduler id="myScheduler"/>

    <task:scheduled-tasks scheduler="myScheduler">

        <task:scheduled ref="doSomethingTask" method="doSomething" cron="0 * * * * *"/>

    </task:scheduled-tasks>

</beans>

當然需要能夠referencedoSomethingTask這個實例了。

用註解配置Spring Scheduler的方式如下:

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class DoSomethingTask {
    @Scheduled(cron="0 * * * * *")
    public void doSomething() {
        System.out.println("do something");
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章