2013-03-13 105 views
4

我想为我的后台工作使用Sidekiq。但是需求是gem依赖是线程安全的。如何确保PostgreSQL驱动器是线程安全的

在他们的wiki页面,他们提到:

Some gems can be troublesome: 

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

我用pg宝石PostgreSQL的。

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

回答

3

宝石调用此C库调用:

PQisthreadsafe();

这里记载:

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

相关文件是这样的:

的libpq是可重入和线程 - 如果配置命令行安全选项 - 在构建PostgreSQL 分发版时使用了--enable-thread-safety。

所以你需要重新编译libpg(或者得到线程安全包,如果有的话)才能使它实际上是线程安全的。