将框架和非阻塞请求发送到PostgreSQL
问题描述:
从内部看,Play Framework从底部开始是异步的。 Play以异步,非阻塞的方式处理每个请求。将框架和非阻塞请求发送到PostgreSQL
如何向PostgreSQL发出非阻塞请求?此刻
@Singleton
class Application @Inject()(usersRepossitory: UsersRepository,
cc: ControllerComponents) extends AbstractController(cc) {
def index = Action {
Ok(usersRepository.list().map(_.id).mkString(","))
}
}
case class User(id: Long)
@Singleton
class UsersRepository @Inject()(dbapi: DBApi) {
private val db = dbapi.database("default")
val parser: RowParser[User] = Macro.namedParser[User]
def list: List[User] = db.withConnection { implicit connection =>
val result: List[User] = SQL"SELECT id FROM users".as(parser.*)
result
}
}