@PostConstruct public void init() { System.out.println("=====================================init-start========================"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); scheduledExecutorService.schedule(() -> { while (true) { if (dataIsInitialized()) { break; } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } scheduledExecutorService.scheduleAtFixedRate(() -> { try { new SaveResultTask(jxMjKhTxService, constantProperties).run(); } catch (Exception e) { e.printStackTrace(); log.error(e.getMessage()); } }, 0, 5, TimeUnit.MINUTES); }, 1, TimeUnit.MINUTES); } private boolean dataIsInitialized() { // 判断数据是否已经初始化完成,如果是,则返回true,否则返回false // 这里可以根据具体业务逻辑来实现 return true; } @GetMapping("/saveTxData") public List<Map<String, Object>> getResult() throws Exception { System.out.println("开始查询提醒接口数据"); return jxMjKhTxService.selectJxMjkhTxData(constantProperties.getJsbh()); } 如何判断数据是否初始化完成详细代码
时间: 2023-12-29 18:05:06 浏览: 63
在代码中,可以通过实现`dataIsInitialized()`方法来判断数据是否初始化完成。这个方法可以根据具体业务逻辑来实现,例如可以查询数据库,判断是否已经从接口获取了数据并更新到数据库中。
以下是一个示例代码,用于判断数据是否已经初始化完成。在这个示例代码中,我们假设需要从接口获取数据并更新到数据库中,因此在`dataIsInitialized()`方法中查询数据库,判断是否已经有数据存在。
```
private boolean dataIsInitialized() {
// 查询数据库,判断是否已经有数据存在
List<Map<String, Object>> dataList = jxMjKhTxService.selectJxMjkhTxData(constantProperties.getJsbh());
return dataList != null && !dataList.isEmpty();
}
```
在定时任务初始化时,我们可以增加一个循环等待的过程,等待数据初始化完成后再执行定时任务。具体实现可以参考以下示例代码,其中增加了一个循环等待的过程,每隔1秒钟检查一次数据是否已经初始化完成,如果是,则跳出循环并执行定时任务。
```
@PostConstruct
public void init() {
System.out.println("=====================================init-start========================"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
scheduledExecutorService.schedule(() -> {
while (true) {
if (dataIsInitialized()) {
break;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
scheduledExecutorService.scheduleAtFixedRate(() -> {
try {
new SaveResultTask(jxMjKhTxService, constantProperties).run();
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
}
}, 0, 5, TimeUnit.MINUTES);
}, 1, TimeUnit.MINUTES);
}
```
阅读全文