Heroku 上的 Rake 任务比本地花费的时间长得多

Rake task takes significantly longer on Heroku than locally

我有一个 rake 任务,在本地需要大约 90 秒。它循环遍历对象并创建一个大的 PG 插入 SQL,然后在最后执行它。

在 Heroku heroku run rake my_task 上大约需要 1.5 小时(与本地数据相同)。我一直在研究 Heroku 和 "One-Off Dynos" 但我找不到太多关于为什么会花这么长时间的信息,除了我的应用程序在 Heroku 免费计划中只有一个网络测功机和 0 个工人。

不是insert耗时长,是之前的循环(循环没有DB调用)

DB 是 PG Hobby-Basic。 Rails 4.2 Ruby1.9.3p374

如果您为 Web 进程使用标准 1X dyno 或更大,您可以 运行 在更快的 dyno 上完成一次性任务,例如在 Ruby 上对 ~100k 个对象进行排序free/hobby dyno 可能会拉伸它。

本文介绍了基础知识 - https://devcenter.heroku.com/articles/one-off-dynos#one-off-dyno-type 为一次性测功机设置测功机大小。