1. 程式人生 > >@Scheduled不執行的原因

@Scheduled不執行的原因

 

. 今天用@Schedule做了一個定時任務,希望凌晨1點執行,程式碼如下

@Service
public class ParseJsonService {
 
    @Scheduled(cron = "0 0 1 * * ?")
    public void parseMongodbDataToJson() {
    }
}

第二天來公司了,發現根本沒有執行。然後開始查詢問題

2. 首先遇到查到的一個解決方案說是spring的版本的問題,我看了下我以前用的定時任務,的確spring用的是4. 於是我將spring的版本換成了4,發現還是不好使

3. 還有版本說要在spring的配置檔案中加上註解驅動

 

<task:annotation-driven />


並且還要加上default-lazy-init="false"屬性,說是不讓spring懶載入,但是發現還是不行

 

3. 又查到版本說要在Bean上加上@Lazy(false),讓spring對該Bean在啟動的時候就載入,但是發現還是不行

 

終極解決方案(適合我,不一定適合你, 我用的Spring版本是4)

第一步:在spring的配置檔案中加上

<task:annotation-driven />


第二步:在上述Bean上加上

@EnableScheduling

程式碼如下:

@Service
@EnableScheduling
public class ParseJsonService { 
    @Scheduled(cron = "0 0 1 * * ?") 
    public void parseMongodbDataToJson() {
 
     }
}