如何确保PostgreSQL驱动器是线程安全的

时间:2013-03-13 19:49:15

标签: ruby-on-rails postgresql sidekiq

我想将Sidekiq用于我的后台工作。但要求是gem依赖是线程安全的。

在他们的维基页面中,他们提到:

   Some gems can be troublesome:

   * pg (the postgres driver, make sure PG::Connection.isthreadsafe returns true)

我为PostgreSQL使用pg gem。

我的问题是:如何将PG :: Connection.isthreadsafe更改为true?

1 个答案:

答案 0 :(得分:3)

gem调用此c库调用:

PQisthreadsafe();

此处记录:

http://www.postgresql.org/docs/8.2/static/libpq-threading.html

相关文件是:

  

如果configure命令行,libpq是可重入且线程安全的   选项--enable-thread-safety在PostgreSQL中使用   分配已经建成。

因此,您需要重新编译libpg(或获取线程安全包,如果可用)以使其实际上是线程安全的。