我有一个rake任务,在本地大约需要90秒。它遍历对象并创建一个大的PG插入SQL,然后在最后执行它。
在Heroku heroku run rake my_task
上需要大约1.5小时(与本地相同的数据)。我一直在研究Heroku和“一次性Dynos”但我找不到太多关于它为什么需要这么长时间的信息,除了我的应用程序是Heroku免费计划,只有一个网络dyno和0工人。
它不是插入需要很长时间,它是事先循环(循环没有DB调用)。
DB是PG Hobby-Basic。 Rails 4.2 Ruby 1.9.3p374
答案 0 :(得分:1)
如果您正在为您的网络流程使用标准的1X dyno或更大的dyno,您可以在更快的dynos上运行一次性任务,因为在免费/爱好dyno上对Ruby中的~100k对象进行排序可能会拉伸它。
本文介绍了基础知识 - https://devcenter.heroku.com/articles/one-off-dynos#one-off-dyno-type,用于设置一次性dyno的dyno大小。