0

我注意到我的 Migrations 和 Rake Tasks 基本上在创建大约 10k 新记录后停止。有没有其他人注意到这个问题?Heroku 是否在做一些节流?

除了将 Migration/Rake 任务分解成更小的部分之外,还有什么建议吗?

这是 Heroku 的已知问题吗?

细节:

  • Rails 3.1.10 应用程序
  • Heroku 雪松
  • 登录到控制台已禁用,但我打印了一个“。” 每次写

想法:
起初我认为是通过网络打印了太多的 SQL 语句,从而减慢了连接速度或类似的坏魔法。但是由于我禁用了日志记录,所以什么都没有改变。此外,它与代码无关——当我创建数千条任何类型的记录时,我会注意到它。

编辑

Suggestion在调用此代码的循环中创建记录:

# in suggestable.rb
# Suggestable polymorphically represents objects which can be suggested

has_many :parent_suggestions, class_name: 'Suggestion', as: :suggestable, dependent: :destroy

# create Suggestion for this suggestable / suggestee
def suggest_to!(suggestee, conf=0)
  get_parent_suggestion_for(suggestee) || 
    parent_suggestions.create(suggestable: self, confidence: conf, suggestee: suggestee)
end
4

1 回答 1

1

如果新创建的(和实例化的)建议都在创建它们的循环中的对象的关联中,那么它们将不会被垃圾收集。您可以尝试定期重新加载根对象以释放引用。

于 2013-02-17T07:37:08.850 回答