gpt4 book ai didi

Java Spring Boot - 用于在后台运行的异步数据库操作的 CommandLineRunner

转载 作者:行者123 更新时间:2023-11-30 02:39:25 30 4
gpt4 key购买 nike

在我的 Spring Boot 应用程序中,我尝试在后台执行一些任务。

每隔 30 分钟从一个数据库获取数据并将其存储在另一个数据库中。

创建一个使用 @Async 处理此问题的 CommandLineRunner 类是否正确?

@Component
public class UpdateDB implements CommandLineRunner {

@Autowired
private WagerBoardMarksRepo loadRepo;

@Autowired
private StoreDbEntRepo storeRepo;

@Async
private static void update() {
while (true) {

// get data from loadRepo.
// save data to storeRepo

try {
Thread.sleep("sleep for 30min"); //
} catch (Exception e) {
e.printStackTrace();
}
}
}

@Override
public void run(String... args) throws Exception {
update();
}

}

最佳答案

调度程序就是为此类操作而设计的,请参见下面的代码

@Component
public class ScheduledTasks {
@Scheduled(cron = "0 0,30 * * * * ?")
public void update() {
// get data from loadRepo.
// save data to storeRepo
}
}

并且不要忘记在 Startup 类中使用 @EnableScheduling

@SpringBootApplication
@EnableScheduling
public class Application {

public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class);
}
}

请参阅Scheduling Tasks有关更多详细信息,请参阅 Spring 文档。

关于Java Spring Boot - 用于在后台运行的异步数据库操作的 CommandLineRunner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42201686/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com