几天前,我们的网站流量激增。当我们扩大规模以处理负载时,我们的单个服务器已达到极限并且请求开始超时。在此期间,一些请求仍在创建记录。问题来自以下模型:
class List < ActiveRecord::Base
before_save :set_published_at
def set_published_at
if published? && published_changed?
self.published_at = Time.now
end
end
end
出于某种原因,在此期间发布的一些列表已发布=true 但已发布_at=nil。
此模型上还有许多其他回调和一个观察者,但它们都不会影响 published_at 属性。这发生在集中到五分钟窗口的五条记录上。
publish_at 属性如何为 null 并且模型仍然使用 publish=true 保存?