春ブーツ - スケジューラの構成

I:

春ブートアプリケーションでは、私はいくつかのスケジュールされたタスクを持っています。私は私の構成では、私が作成する必要があり、それらを同時に実行したいThreadPoolTaskSchedulerオブジェクトをし、それを登録しますScheduledTaskRegistrar私はそれを行うには、2つの方法を見つけます:

方法1

@Configuration
@EnableScheduling
public class SchedulerConfig implements SchedulingConfigurer {

    private final int POOL_SIZE = 10;

    @Override
    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {

        ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();

        scheduler.setPoolSize(POOL_SIZE);
        scheduler.setThreadNamePrefix("name");
        scheduler.initialize();

        scheduledTaskRegistrar.setTaskScheduler(scheduler);
    }
}

方法2

@Configuration
@EnableScheduling
public class SchedulerConfig implements SchedulingConfigurer {

    private final int POOL_SIZE = 10;

    @Override
    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {

        scheduledTaskRegistrar.setTaskScheduler(this.poolScheduler());
    }

    @Bean
    public TaskScheduler poolScheduler() {

        ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();

        scheduler.setPoolSize(POOL_SIZE);
        scheduler.setThreadNamePrefix("name");

        return scheduler;
    }
}
  1. どっちが優れているか、彼らはまったく同じですか?
  2. なぜな方法でThreadPoolTask​​Schedulerオブジェクトの2 initializeメソッドが呼び出されていませんか?
user7294900:

あなたがため、2番目の方法が優れている春のハンドルクラスを聞かせて TaskScheduler、後であなたが使用して他のクラスでそれを使用することができます@Autowiredよう:

@Autowired
TaskScheduler taskScheduler  

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=235510&siteId=1