Springタイミングタスク@Scheduled注記の使用
3632 ワード
xmlの方式はここで書かないで、使うのも比較的に面倒で、ここで1篇の教程を放します
https://blog.csdn.net/qq_33556185/article/details/51852537
以下はSpring Bootの統合@Scheduledの使い方です
まずSpring Taskの構成クラスを書き、スレッドプールを構成し、1つのタイミングタスクの実行時間が長すぎるため、他のタイミングタスクのエラーを防止します.
そして自分のタイミングタスクを書きます
最後にSpring Boot起動クラスに@EnableScheduling注記オープンタイミングタスクを付ければいいです
https://blog.csdn.net/qq_33556185/article/details/51852537
以下はSpring Bootの統合@Scheduledの使い方です
まずSpring Taskの構成クラスを書き、スレッドプールを構成し、1つのタイミングタスクの実行時間が長すぎるため、他のタイミングタスクのエラーを防止します.
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import java.util.concurrent.Executors;
@Configuration
public class SchedulerConfig implements SchedulingConfigurer {
//
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(Executors.newScheduledThreadPool(100));
}
}
そして自分のタイミングタスクを書きます
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.Instant;
import java.util.Date;
@Component
@Slf4j
public class MyScheduler {
@Scheduled(fixedRate = 2000)
public void firstTask(){
log.info(" , :" + new Date());
}
@Scheduled(cron = "* * * * * ?")
public void secondTask(){
log.info(" , : " + Instant.now());
}
}
最後にSpring Boot起動クラスに@EnableScheduling注記オープンタイミングタスクを付ければいいです