Play2 では、アクション構成の概念と、非同期応答に Async {...} を使用することの概念は理解していますが、これらのアプローチが一緒に使用されている例は見たことがありません。
明確にするために、ユーザーが認証されていることを確認するためにアクション構成を使用しているとします。
def index = Authenticated { user =>
Action { request =>
Async {
Ok("Hello " + user.name)
}
}
}
の実装でAuthenticated
、ユーザーを取得するために DB がルックアップされていると仮定すると、この部分がブロッキング呼び出しになり、Action
ボディ内の応答のみがノンブロッキングとして残されるように見えます。
認証部分も含む非ブロック非同期 I/O を行う方法を誰かが説明できますか?