據我所知,爲了使應用程序真正無阻塞,所有執行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. 帶延遲的阻塞/非阻塞
如果它是非阻塞客戶端,它爲什麼會阻塞任何東西? –