-->

任何建议在Python3使用的龙卷风非阻塞MySQL的API?(Any suggestion for

2019-09-22 01:59发布

我希望的异步SQL数据库opertion龙卷风支持下,经过我读的源代码,

http://www.tornadoweb.org/documentation/_modules/tornado/database.html#Connection

叹了口气,他们封锁version.here的一些选择。

A计划:找到类似的一组API,除了他们使用的回调返回reuslt.sorry我没有找到一个显示例子那是他们的API可以处理非阻塞mysql的操作MySQLdb的模块

B计划:使用。我听到龙卷风笔者建议开发者使用块版本块的版本,并且极其优化您的SQL查询缩短间歇时间。

在我的情况:服务器需要处理收到高峰每秒2K的请求,其中大部分需要从数据库查询和更新,建议每一个操作需要10毫秒,10毫秒* 2K超过20岁,这将是一个nightmare.in多线程编程至少我可以使更多的平均响应时间更多的连接。

也许我在这里错过了一些点,我对后端发展。但是我仍然认为使用阻塞IO的API是吸吮的想法,而框架是非阻塞没有太多的经验。

C计划:删除MySQL使用MongoDB中,我听到了MongoDB的具有异步实现的Python API asyncmongo命名,但林不知道危险来学习的MongoDB,并采取MongoDB的作为我们的经营选择

Answer 1:

另一种选择是设置多处理( http://docs.python.org/library/multiprocessing.html?highlight=multiprocessing#multiprocessing ),并且在流程作为队列管理器为DB的使用。

结合多重高效的SQL查询,你应该尽量减少你的整体影响。 阻塞调用将只在DB处理队列管理器进程来完成和应用程序的其他部分可以不被阻止运行。 受影响的人,就尝试运行在同一时间一个数据库查询的人。



文章来源: Any suggestion for using non-blocking MySQL api on Tornado in Python3?