带有 WebClient 的 Cron 调度程序
Cron Scheduler with WebClient
我正在使用 spring 引导。我正在尝试将数据从一个数据库发送到另一个数据库。
首先,我通过发出获取请求从第一个数据库获取数据并通过 Web 客户端应用 post 将数据发送到另一个数据库来完成此操作。有效!
但是,当我尝试使用带有 @Scheduled 注释的 cron 调度程序来执行此操作时,它不会 post 将数据发送到数据库。尽管该功能运行良好,但当我尝试通过该功能打印内容时,WebClient 并未 post 处理数据(还检查了数据,一切正常)。
Cron class 是:
@Component
public class NodeCronScheduler {
@Autowired
GraphService graphService;
@Scheduled(cron = "*/10 * * * * *")
public void createAllNodesFiveSeconds()
{
graphService.saveAlltoGraph("Product");
}
}
saveAlltoGraph 函数从 Product table 中获取所有元组并将 post 请求发送到图形数据库的 api,从而从元组中生成节点。
函数如下:
public Mono<Statements> saveAlltoGraph(String label) {
JpaRepository currentRepository = repositoryService.getRepository(label);
List<Model> allModels = currentRepository.findAll();
Statements statements = statementService.createAllNodes(allModels, label);
//System.out.println(statements);
return webClientService.sendStatement(statements);
}
首先,标签“Product”用于获取与该 table 相关的 JpaRepository。然后我们获取列表中 table 的所有元组,并根据它创建对象,(我们可以使用序列化程序来获取 JSON)。
这里是 sendStatement 函数:
public Mono<Statements> sendStatement(Statements statements){
System.out.println(statements);
return webClient.post().uri("http://localhost:7474/db/data/transaction/commit")
.body(Mono.just(statements), Statements.class).retrieve().bodyToMono(Statements.class);
}
当我们使用 get 请求映射调用此 saveAlltoGraph 时一切正常,但不使用调度程序。
我尝试向其中添加 .block() 和 .subscribe()。事情开始与 cron 调度程序一起工作。
我正在使用 spring 引导。我正在尝试将数据从一个数据库发送到另一个数据库。 首先,我通过发出获取请求从第一个数据库获取数据并通过 Web 客户端应用 post 将数据发送到另一个数据库来完成此操作。有效! 但是,当我尝试使用带有 @Scheduled 注释的 cron 调度程序来执行此操作时,它不会 post 将数据发送到数据库。尽管该功能运行良好,但当我尝试通过该功能打印内容时,WebClient 并未 post 处理数据(还检查了数据,一切正常)。
Cron class 是:
@Component
public class NodeCronScheduler {
@Autowired
GraphService graphService;
@Scheduled(cron = "*/10 * * * * *")
public void createAllNodesFiveSeconds()
{
graphService.saveAlltoGraph("Product");
}
}
saveAlltoGraph 函数从 Product table 中获取所有元组并将 post 请求发送到图形数据库的 api,从而从元组中生成节点。
函数如下:
public Mono<Statements> saveAlltoGraph(String label) {
JpaRepository currentRepository = repositoryService.getRepository(label);
List<Model> allModels = currentRepository.findAll();
Statements statements = statementService.createAllNodes(allModels, label);
//System.out.println(statements);
return webClientService.sendStatement(statements);
}
首先,标签“Product”用于获取与该 table 相关的 JpaRepository。然后我们获取列表中 table 的所有元组,并根据它创建对象,(我们可以使用序列化程序来获取 JSON)。
这里是 sendStatement 函数:
public Mono<Statements> sendStatement(Statements statements){
System.out.println(statements);
return webClient.post().uri("http://localhost:7474/db/data/transaction/commit")
.body(Mono.just(statements), Statements.class).retrieve().bodyToMono(Statements.class);
}
当我们使用 get 请求映射调用此 saveAlltoGraph 时一切正常,但不使用调度程序。
我尝试向其中添加 .block() 和 .subscribe()。事情开始与 cron 调度程序一起工作。