我们使用 heroku 作为部署服务。我们的 postgres 附加计划是 400 mb 内存限制的起重机,我们的数据库中有 460MB 数据。直到 2 天前,有时 postgres 服务器开始响应空结果集。
这是一个关于这种情况的示例,我们有一个条目模型的属性,并且在保存回调后将条目号分配给条目对象,但该条目号与 object_id 不同。这是我们的回调方法。
def assign_entry_no
return true unless self.new_record? && !self.project.nil?
last_entry = Entry.where(:project_id => self.project_id).last
self.entry_no = last_entry.nil? ? 1 : (last_entry.entry_no + 1)
end
这是输出。
object_id -> id
---------|----
677467 -> 3
677466 -> 2
677465 -> 1 // empty result set
677462 -> 3
677461 -> 2
677460 -> 1 // empty result set
677459 -> 31
677458 -> 30
677457 -> 29
如您所见,有时 postgres 服务器返回空结果集。我们认为如果我们将附加计划升级到 800 mb,我们将解决问题。有没有人遇到过这个问题,是关于postgres服务器还是其他的东西?
我们的系统 => rails 3.0.2,mri ruby 1.9.3