为了我的比赛!我需要某种形式的异步编程。简单地说,我需要在后台处理时显示一个视图,然后重定向或呈现一个新表单。
这
question
已被询问,但没有回应。我已经查看了播放文档页面,在那里我没有找到任何解决方案。
我试图修改
AsynchController
play starter example
。但是,当导航到
http://localhost/message
,该功能似乎更像是一个睡眠,而不是一个被设置和“忘记”的预定任务,即可以继续进一步编码。
AsynchController代码段:
public CompletionStage<Result> message() {
return getFutureMessage(5, TimeUnit.SECONDS).thenApplyAsync(s -> ok(views.html.User.Account.verified.render()), exec);
}
private CompletionStage<String> getFutureMessage(long time, TimeUnit timeUnit) {
CompletableFuture<String> future = new CompletableFuture<>();
actorSystem.scheduler().scheduleOnce(
Duration.create(time, timeUnit),
() -> future.complete("Waiting 5 seconds..."),
exec
);
return future;
}
路线入口
GET /message controllers.AsyncController.message
目的:
我在这里的目的是为了传递信息
Waiting 5 seconds...
verified
第页(用于已验证的帐户)。
我是否在正确的轨道上实现了我最初的目标,在哪里可以找到类似的好例子?