adbapi连接池的限制

3

我正在使用adbapi连接池将twisted与MySQL配合使用。我只向数据库中插入数据(尽管速度非常快)。

如果连接池因所有连接都处于繁忙状态而用尽了连接,会发生什么情况?当在繁忙的连接池上调用runinteraction时,twisted事件循环是否会被阻塞?

1个回答

0

tl;dr 调用 RunInteraction 会返回一个 Deferred,不会阻塞。

基本上,它返回 thread.deferToThreadPool

然后调用 threadpool.callInThreadWithCallback 后返回一个 Deferred。

那个函数 调用了:self._team.do(inContext),其中_team在此处被创建

......经过更多的抽象之后,最终我们只需要将请求附加到挂起任务队列中以等待工作线程(连接)空闲即可。

所以您的插入操作最终会被写入数据库(除非在挂起列表中有太多任务时进程耗尽内存)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接