在我的应用程序中,我在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"/>
我无法从日志文件中找到它,所以这是我的问题:
答案 0 :(得分:4)
它在后台使用java Executor api。 您需要知道的所有内容都可以在documentation
中找到您基本上选择了TaskExecutor实现,然后设置了您想要的处理线程数。
在您的示例中,将以5秒的固定延迟连续执行3种方法。但是如果只定义一个处理线程,并且一个方法需要很长时间,那么其他两个方法的执行将被推迟。 如果您不想依赖于使用@Scheduled执行的其他函数,则在此示例中需要3个处理线程。