- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一台运行 ubuntu 14.04
、Rails 4.2.0
、postgresql 9.6.1
和 gem pg 0.21 的生产服务器。 0/0.20.0
。最近几天,访问psql server
中的表customer_input_datax_records
时经常出错。
D, [2017-07-20T18:08:39.166897 #1244] DEBUG -- : CustomerInputDatax::Record Load (0.1ms) SELECT "customer_input_datax_records".* FROM "customer_input_datax_records" WHERE ("customer_input_datax_records"."status" != $1) [["status", "email_sent"]]
E, [2017-07-20T18:08:39.166990 #1244] ERROR -- : PG::UnableToSend: no connection to the server
: SELECT "customer_input_datax_records".* FROM "customer_input_datax_records" WHERE ("customer_input_datax_records"."status" != $1)
调用访问数据库服务器的代码是 Rufus scheduler 3.4.2
循环:
s = Rufus::Scheduler.singleton
s.every '2m' do
new_signups = CustomerInputDatax::Record.where.not(:status => 'email_sent').all
.......
end
重启服务器后,通常有第一个请求(或几个)。但一段时间后(例如,1 或 2 小时),问题开始出现。但是该应用程序似乎运行良好(通过读/写和创建新记录访问记录)。有一些关于该错误的在线帖子。但是问题似乎不是我遇到的问题。在我重新安装 psql 服务器之前,我想了解一下导致无连接
的原因。
更新:database.yml
production:
adapter: postgresql
encoding: unicode
host: localhost
database: wb_production
pool: 5
username: postgres
password: xxxxxxx
最佳答案
所以,错误是“RAILS:PG::UnableToSend:没有连接到服务器”。
这让我想起了 Connection pool issue with ActiveRecord objects in rufus-scheduler
你可以做
s = Rufus::Scheduler.singleton
s.every '2m' do
ActiveRecord::Base.connection_pool.with_connection do
new_signups = CustomerInputDatax::Record
.where.not(status: 'email_sent')
.all
# ...
end
end
挖掘
如果能更多地了解这个问题就好了。
我建议尝试这段代码:
s = Rufus::Scheduler.singleton
def s.on_error(job, error)
Rails.logger.error(
"err#{error.object_id} rufus-scheduler intercepted #{error.inspect}" +
" in job #{job.inspect}")
error.backtrace.each_with_index do |line, i|
Rails.logger.error(
"err#{error.object_id} #{i}: #{line}")
end
end
s.every '2m' do
new_signups = CustomerInputDatax::Record.where.not(:status => 'email_sent').all
# .......
end
一旦问题出现,我就会在 Rails 日志中查找 on_error
的完整输出。
这个on_error
来自https://github.com/jmettraux/rufus-scheduler#rufusscheduleron_errorjob-error
关于ruby-on-rails - PG::UnableToSend: 没有连接到 Rails 中的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45218189/
我有一台运行 ubuntu 14.04、Rails 4.2.0、postgresql 9.6.1 和 gem pg 0.21 的生产服务器。 0/0.20.0。最近几天,访问psql server 中
在我的 Ruby on Rails 应用程序上,当创建模型交易时,我使用 after_create 在 DealPrize 表上创建奖品。 Deal 和 DealPrize 有 belong to/h
我目前正在尝试将 Rails 3.2 应用程序升级到 Rails 4.0.13(ruby 2.3.5、PostgreSQL 9.4.13),但在运行集成测试时出现此错误; : PG::U
嗨,我们正在使用 Unicorn 和 Sidekiq 在 Heroku 的 Cedar 堆栈上运行。我们间歇性地收到以下错误 BurnThis ActiveRecord::StatementInval
我们有一个 Ruby v.2.0.0-p247在 Rails v4.0.1应用程序使用 pg gem v0.17.0 . 应用在Mac OS X Mavericks v10.9下顺利运行与 Postg
我是一名优秀的程序员,十分优秀!