Ruby on rails EOFError:在heroku和workers上出现文件结尾错误和内存错误

Ruby on rails EOFError:在heroku和workers上出现文件结尾错误和内存错误,ruby-on-rails,ruby,heroku,Ruby On Rails,Ruby,Heroku,我在heroku 1x上有一个worker,用于sidekiq后台进程。这个过程基本上在所有用户之间循环,并通过twilio向他们发送sms消息 几个月来,一切正常,但最近两次我的客户尝试使用此功能时,失败了。我不知道第一次失败的原因,但今天最近一次,工人失败了,他说: EOFError: end of file reached 然后,当看到heroku logs-tail时,它一遍又一遍地说: 2014-07-18T01:06:59.544697+00:00 heroku[worker.1]

我在heroku 1x上有一个worker,用于sidekiq后台进程。这个过程基本上在所有用户之间循环,并通过twilio向他们发送sms消息

几个月来,一切正常,但最近两次我的客户尝试使用此功能时,失败了。我不知道第一次失败的原因,但今天最近一次,工人失败了,他说:

EOFError: end of file reached
然后,当看到heroku logs-tail时,它一遍又一遍地说:

2014-07-18T01:06:59.544697+00:00 heroku[worker.1]: Process running mem=804M(157.2%)
2014-07-18T01:06:59.544945+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
重新启动服务器最终修复了它。不久前我就遇到了这个问题,我想我已经解决了。这是我的sidekiq.rb文件:

Sidekiq.configure_server do |config|
  pool_size = Sidekiq.options[:concurrency] + 2

  if defined?(ActiveRecord::Base)
    config = Rails.application.config.database_configuration[Rails.env]
    config['pool'] = pool_size
    ActiveRecord::Base.establish_connection(config)
  end
end

为什么这会突然发生?他们的用户群肯定在增长,但这并没有比它在其他时间正常工作时多多少。谢谢

正如您在另一个问题中所回答的,您可以使用find_each来确保没有加载太多数据,并将这些数据输入librato进行监控