我想知道 Quarkus 中每个请求运行后台任务的良好做法是什么。
像这样的东西:
@POST()
@Path("v1")
public Uni<Response> buildSomething() {
// start a thread to build things in the background
// when completed, save the id in DB
// return immediately
return Uni.createFrom().item(Response.accepted().build());
}
@GET()
@Path("v1")
public Uni<List<Long>> getSomethingThatHasBeenBuilt() {
// fetch ids from DB
return fetchIdsFromDB();
}
我希望我可以做一些像 Go 例程这样的事情,我可以为此设置超时并记录错误。我怀疑有人可能会注入一个 vertx 实例并在工作线程池中执行任务,但我不知道如何实现。