一尘不染

spring @Scheduled注释方法是否在不同的线程上运行?

spring

我有几种用注释的方法@Scheduled(fixedDelay=10000)

在应用程序上下文中,我具有此注释驱动的设置:

<task:annotation-driven />

问题是,有时某些方法的执行会延迟几秒钟甚至几分钟。

我假设即使一个方法需要一段时间才能完成执行,其他方法仍然会执行。所以我不明白延迟。

有没有办法减少甚至消除延迟?


阅读 466

收藏
2020-04-15

共1个答案

一尘不染

了完整起见,以下代码显示了使用java config配置调度程序的最简单方法:

@Configuration
@EnableScheduling
public class SpringConfiguration {

    @Bean(destroyMethod = "shutdown")
    public Executor taskScheduler() {
        return Executors.newScheduledThreadPool(5);
    }
    ...

当需要更多控制时,@Configuration可以实现一个类SchedulingConfigurer

2020-04-15