据我所知,为了使应用程序真正无阻塞,所有执行IO操作的库(例如数据库驱动程序)都应该意识到它们在select
循环内部运行并应该将他们的文件描述符添加到主列表中,以便他们的IO可以正确调度。因此,如果我使用随机驱动程序(如https://github.com/mauricio/postgresql-async),它将阻止其他客户端的所有HTTP处理,同时等待查询完成。我是否应该使用某些特定的Play(或其他底层的)知道的驱动程序?用于Play框架的非阻塞数据库驱动程序
2
A
回答
-1
要把你的数据库查询到后台线程, 并返回一个承诺玩:
http://www.playframework.com/documentation/2.0/ScalaAsync
斯卡拉2.10集成了阿卡的期货实现:
http://doc.akka.io/docs/akka/2.2.1/scala/futures.html#introduction
免责声明 - 我从来没有使用播放...
1
我不知道实施细节,但基于这篇博客文章,它至少为一个人工作:
我认为未来的情况下,虽然不透明的应用程序,会当它告诉系统等待插座和期货的集合交出文件描述符在runloop的select()调用。
相关问题
- 1. 设备驱动程序DLL阻塞与非阻塞?
- 2. 基于Netty的非阻塞REST框架
- 3. Tornado + SQLAlchemy非阻塞数据库调用
- 4. windows.forms数据库驱动的应用程序框架
- 5. 光PHP数据库驱动的框架
- 6. 用play安装postgresql!框架(未找到驱动程序:[org.postgresql.Driver])
- 7. 游戏框架和Node.js的无阻塞关系数据库
- 8. 发挥框架,承诺,非阻塞线程编程
- 9. 非阻塞线程
- 10. 非阻塞异步mongo java/scala驱动程序可以阻塞线程 - 如何处理该问题?
- 11. 编写PHP非阻塞应用程序
- 12. 使用微过滤器驱动程序的USB阻塞(passThrough)
- 13. Linux的字符设备驱动程序:阻塞ioctl调用
- 14. mpi:阻塞与非阻塞
- 15. 如何在Play框架中运行异步/非阻塞MySQL查询?
- 16. play 2.0非阻塞模型vs python龙卷风非阻塞模型
- 17. 正确的接口非阻塞慢采样传感器驱动程序
- 18. java应用程序数据驱动测试的当前框架(基于spring)
- 19. Cassandra python驱动程序在使用Celery时被阻塞
- 20. 使用Impala JDBC驱动程序指定非默认数据库
- 21. 使用sql数据库驱动程序
- 22. 适用于Android的非阻塞IO
- 23. 第一个驱动程序 - 用于linux的spi框架
- 24. Play框架 - 数据库表生成器
- 25. MySQL&Play框架 - 数据库配置
- 26. 写一个非阻塞程序
- 27. 从powershell启动非阻塞过程
- 28. 非阻塞UI线程动画
- 29. 将线程阻塞转换为f中的非线程阻塞#
- 30. 带延迟的阻塞/非阻塞
如果它是非阻塞客户端,它为什么会阻塞任何东西? –