相关疑难解决方法(0)

spring-boot @scheduled无法在其他线程中运行?

我正在配置计划的任务以在不同的线程中运行。这是配置代码

@Configuration
@EnableScheduling
public class SchedulerConfig implements SchedulingConfigurer {
    private final int POOL_SIZE = 10;

    @Override
    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
        ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
        threadPoolTaskScheduler.setPoolSize(POOL_SIZE);
        threadPoolTaskScheduler.setThreadNamePrefix("my-sched-pool-");
        threadPoolTaskScheduler.initialize();
        scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是使用它的代码

@Scheduled(fixedRateString = "2000" )
    public void testaMethod() {

         log.debug("here is the message");
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
Run Code Online (Sandbox Code Playgroud)

我将线程固定时间为2s的线程休眠了10秒钟。所以我希望在日志中看到不同的线程,但是我只能看到一个

日志在这里

{"thread":"my-sched-pool-1","level":"DEBUG","description":"here is the message"}
{"thread":"my-sched-pool-1","level":"DEBUG","description":"here is the message"}
{"thread":"my-sched-pool-1","level":"DEBUG","description":"here is the message"}
{"thread":"my-sched-pool-1","level":"DEBUG","description":"here is the message"}
Run Code Online (Sandbox Code Playgroud)

java spring multithreading spring-scheduled spring-boot

5
推荐指数
1
解决办法
3588
查看次数