微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spring 独立的任务执行器,有自己的线程池

如何解决spring 独立的任务执行器,有自己的线程池

我想在 Spring 中运行一个单独的 TaskExecutor。我想在调度程序中生成我自己的任务,并检查当前正在运行的任务数量

我使用 ThreadPoolTaskScheduler 并定义了线程数:

public class MyThreadPoolTaskScheduler extends ThreadPoolTaskScheduler {
}

我是按照以下方式配置的

@Configuration
public class MyConfiguration {

    @Bean
    public MyThreadPoolTaskScheduler taskExecutor() {
        MyThreadPoolTaskScheduler myThreadPoolTaskScheduler = new MyThreadPoolTaskScheduler();
        myThreadPoolTaskScheduler.setPoolSize(10);

        return myThreadPoolTaskScheduler;
    }
}

正如我之前提到的,我想在调度程序中生成新任务并检查当前正在运行的任务数量

@Component
public class MyScheduler {

    @Autowired
    private MyThreadPoolTaskScheduler myThreadPoolTaskScheduler;

    @Scheduled(fixedDelay = 60 * 1000)
    public void mySchedule() {
        System.out.println(myThreadPoolTaskScheduler.getActiveCount());
        System.out.println(myThreadPoolTaskScheduler.getPoolSize());
    }
}

然而,我看到 1#getActiveCount() 返回,即使我还没有在任务执行器上运行任何任务。据我了解,这是因为计划任务在同一个线程池上运行。是否可以定义一个完全独立的 ThreadPoolTaskScheduler 及其自己的线程池?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。