当前位置: 首页 > 面试题库 >

可以将SQLAlchemy配置为非阻塞吗?

燕靖
2023-03-14
问题内容

我的印象是,通过SQLAlchemy进行的数据库调用将被阻止,不适合用于除同步代码以外的任何其他内容。我是正确的吗(我希望不是!),或者是否可以将其配置为非阻塞状态?


问题答案:

您可以使用gevent以非阻塞样式使用SQLA。这是使用psycopg2和psycopg2的协程支持的示例:

https://bitbucket.org/zzzeek/green_sqla/

我也听说人们在pymysql中使用相同的想法。由于pymysql在纯Python中并且使用套接字库,因此gevent将套接字库修补为异步的。



 类似资料:
  • 本文向大家介绍verilog 非阻塞分配,包括了verilog 非阻塞分配的使用技巧和注意事项,需要的朋友参考一下 示例 非阻塞分配(<=)用于边缘敏感always块内部的分配。在一个块内,新值只有在处理完整个块后才可见。例如: 请注意<=此处使用了非阻塞()分配。由于第一个赋值直到在程序块之后才真正生效,因此第二个赋值会按预期执行并实际上交换两个变量-与阻塞赋值(=)或其他语言的赋值不同;f1仍

  • 问题内容: 我想使用redis的pubsub传输一些消息,但不想使用阻止,例如以下代码: 最后一部分将被阻止。我只想检查给定频道中是否有数据,该如何完成?有没有类似的方法? 问题答案: 我认为那不可能。通道没有任何“当前数据”,您订阅了一个通道并开始接收该通道上其他客户端推送的消息,因此它是一个阻塞的API。另外,如果您查看pub / sub 的Redis Commands文档,将会更加清楚。

  • 非阻塞 IO 仅对在 Servlet 和 Filter(2.3.3.3节定义的,“异步处理”)中的异步请求处理和升级处理(2.3.3.5节定义的,“升级处理”)有效。否则,当调用 ServletInputStream.setReadListener 或ServletOutputStream.setWriteListener 方法时将抛出IllegalStateException。为了支持在 Ser

  • Web 容器中的非阻塞请求处理有助于提高对改善 Web 容器可扩展性不断增加的需求,增加 Web 容器可同时处理请求的连接数量。servlet 容器的非阻塞 IO 允许开发人员在数据可用时读取数据或在数据可写时写数据。非阻塞 IO 仅对在 Servlet 和 Filter(2.3.3.3节定义的,“异步处理”)中的异步请求处理和升级处理(2.3.3.5节定义的,“升级处理”)有效。否则,当调用 S

  • 问题内容: 我读过某个地方,Java可以在大约12条机器指令中为对象分配内存。这对我来说非常令人印象深刻。据我了解,JVM使用的技巧之一是按块预分配内存。我认为,这有助于最大程度地减少对操作系统的请求数量,这是非常昂贵的。但是,即使是CAS操作,在现代处理器上也可能要花费多达150个周期。 那么,谁能在Java中解释内存分配的实际成本以及JVM使用哪些技巧来加快分配速度? 问题答案: JVM为每个

  • 我试图用Java实现这里描述的非阻塞二叉查找树。该算法基于单世界CAS,但是: 状态和信息字段一起存储在 CAS 对象中。因此,内部节点使用四个字的内存。 我决定使用AtomicStampedReference来存储这些数据。问题是它 通过创建表示“盒装”[引用,整数] 对的内部对象来维护标记引用。 该结构的内部实施: 配对定义为: 这个实现仍然是非阻塞的吗? 额外的问题是:是什么使这种compa