[英]How does Spring's @Scheduled annotation work?
在我的應用程序中,我在3個單獨的類中有3個預定方法:
@Component
public class ClassA {
@Scheduled(fixedDelay = 5000L)
public void methodA(){
//do task "A"
}
}
@Component
public class ClassB {
@Scheduled(fixedDelay = 5000L)
public void methodB(){
//do task "B"
}
}
@Component
public class ClassF {
@Scheduled(fixedDelay = 5000L)
public void methodF(){
//do task "F"
}
}
在app applicationContext中有這樣的行:
<task:annotation-driven executor="myExecutor" scheduler="scheduler"/>
<task:executor id="myExecutor"/>
<task:scheduler id="scheduler"/>
我無法從日志文件中找到它,所以這是我的問題:
它在后台使用java Executor api。 您需要知道的一切都可以在文檔中找到
您基本上選擇TaskExecutor實現,然后設置所需的處理線程數。
在您的示例中,將以5秒的固定延遲連續執行3種方法。 但是如果只定義一個處理線程,並且一個方法需要很長時間,那么其他兩個方法的執行將被推遲。 如果您不想依賴於使用@Scheduled執行的其他函數,則在此示例中需要3個處理線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.