在我的rake任务中,我正在通过pgbouncer设置连接到postgresql。对于,一些查询我收到此错误:
ActiveRecord::StatementInvalid: PG::ConnectionBad: PQconsumeInput() could not receive data from server: Connection timed out
在我的pgbouncer日志中,看到以下条目:
closing because: client unexpected eof (age=3110)
我已在
config/database.yml
文件中禁用了准备好的语句,并在pgbouncer配置文件中启用了transaction
pool_mode
。当我直接连接到postgres时,不会出现此错误。
同样在我的rake任务中,我正在创建多个线程。我尝试按照建议的here在线程中运行
ActiveRecord::Base.connection.reconnect!
。那也没有帮助。我正在使用具有this fix的Rails版本4.2.5。我仍然收到此错误“无法从服务器接收数据:连接超时”。
最佳答案
这是由于客户端中的网络问题引起的。由于我们将服务器和客户端都迁移到了Google Cloud Platform,因此无法复制。之前我们的服务器是在DigitalOcean中,而我们的客户是在GCP中。
关于ruby-on-rails - 在rake任务中接收 "ActiveRecord::StatementInvalid: PG::ConnectionBad: PQconsumeInput() could not receive data from server: Connection timed out",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38294359/