我为每个cpu内核构建多个进程。当我尝试测试,并从这些过程中发送多个请求,我得到一个异常:并发查询时出现SQLAlchemy异常
psycopg2.OperationalError: SSL error: decryption failed or bad record mac
它工作在单进程模式很好,但是当我建立一个以上的过程,显示此错误。
我为每个cpu内核构建多个进程。当我尝试测试,并从这些过程中发送多个请求,我得到一个异常:并发查询时出现SQLAlchemy异常
psycopg2.OperationalError: SSL error: decryption failed or bad record mac
它工作在单进程模式很好,但是当我建立一个以上的过程,显示此错误。
您可以在postgres配置文件上禁用SSL。改变这一行:
ssl = true
到
ssl = false
配置文件通常是/etc/postgresql/*.*/main/postgresql.conf
这可能是因为你的进程共享同一个连接池,并同时书面通知相同的postgres连接(s)。
您不提供关于如何实现多处理的很多信息,但是如果是分叉处理,常见的缺陷是引擎是在fork之前创建的,它初始化TCP连接到数据库,然后获取复制到新进程并导致多个进程与相同物理套接字进行交互。
补偿包括:
您可以添加代码片段 –
[SQLAlchemy和多个进程的连接问题]的可能重复(http://stackoverflow.com/questions/41279157/connection-problems-with-sqlalchemy-and-multiple-processes) –
@IljaEverilä谢谢,这很有用 – mahdi13