小编los*_*ost的帖子

在python多进程之间共享一个postgres连接池

我正在尝试将 psycopg2 的连接池与 python 的多进程库一起使用。

目前,尝试以上述方式在线程之间共享连接池会导致:

psycopg2.OperationalError: SSL error: decryption failed or bad record mac
Run Code Online (Sandbox Code Playgroud)

下面的代码应该重现错误,警告读者必须设置一个简单的 postgres 数据库。

psycopg2.OperationalError: SSL error: decryption failed or bad record mac
Run Code Online (Sandbox Code Playgroud)

我已经尝试过的:

  1. 让每个进程打开和关闭自己的数据库连接,而不是尝试使用连接池。这很慢。
  2. 让每个进程使用自己的连接池,这也很慢。
  3. 将连接传递给每个进程的 psycopg2 连接对象,而不是使用withsql 查询中的语句隐式调用它。这会引发一个错误,声称连接对象不可pickle。

注意:如果我sleep在除一个进程之外的所有进程中进行操作,非休眠进程运行良好并执行其查询,直到其余线程不休眠,然后我收到上述错误。

我已经读过的:

  1. 在 Python 中跨进程共享与 postgres 数据库的连接
  2. Python:从线程调用时解密失败或错误记录mac
  3. SQLAlchemy 和多个进程的连接问题

最后:

如何将连接池 (psycopg2) 与 python 的多进程(多处理)一起使用。我愿意使用其他库,只要它们与 python 和 postgresql 数据库一起工作。

python postgresql psycopg2 multiprocessing

6
推荐指数
1
解决办法
1394
查看次数

python 3 中 math.isnan 、numpy.isnan 和 pandas.isnull 之间有什么区别?

NaNDecimal 类型的A会导致:

  1. math.isnan 返回 True
  2. numpy.isnan 抛出 TypeError 异常。
  3. pandas.isnull 返回 False

math.isnan、numpy.isnan 和 pandas.isnull 之间有什么区别?

numpy python-3.x pandas

4
推荐指数
1
解决办法
3089
查看次数

未能使用IBPy更改价格数据的时区

我希望能够以EST(纽约)作为时区获得证券的价格数据.我的经纪人是盈透证券.我正在使用带有IBPy库的 python 3.5 .我的问题是,当我修改控制数据时区的reqHistoricalData的第三个参数时,我得到的价格完全相同.

如何重现问题:

  1. 通过指定contract.m_symbol ='AUD',contract.m_secType ='CASH',contract.m_exchange ='IDEALPRO',contract.m_primaryExch ='IDEALPRO',contract.m_currency ='NZD'来创建要查询的合同
  2. 使用reqHistoricalData,以EST作为23/6/2016的时区,获得上述合约的每日开盘价.
  3. 现在通过修改reqHistoricalData的第3个参数来更改时区,以使用JST作为23/6/2016的时区.
  4. 比较第2步和第3步的开盘价

感谢任何帮助.

python timezone interactive-brokers ibpy

2
推荐指数
1
解决办法
331
查看次数