在Heroku上我需要一个工人dyno吗?

时间:2013-07-28 08:08:22

标签: ruby-on-rails ruby-on-rails-3 heroku

我没有在Rails应用程序中专门添加任何后台任务。该应用程序将发送电子邮件,并将调整图像大小。但我没有在我的应用中添加任何后台流程,例如delayed_jobsResque。目前我不打算添加后台进程。那我需要一个工人dyno吗?

如果我添加一个worker dyno,这些任务是否会由worker dyno自动处理?

2 个答案:

答案 0 :(得分:1)

如果您没有运行后台进程,那么没有工作人员dyno就可以了。

但这也取决于你的正常过程。如果您的流程需要很长的请求时间(例如可能是您的图像大小调整的情况),那么将其打包到后台任务中可能会很有用。

可以在Heroku website上找到相当好的解释:

https://devcenter.heroku.com/articles/background-jobs-queueing

当然Heroku的优点在于它的可扩展性......所以如果你发现你的任务需要很高的响应时间,你可以随后添加一个工作器dyno,然后将任务更改为后台任务。

答案 1 :(得分:1)

魔法没有任何事情发生!除非你在后台添加delayed_job或其他gem用于处理任务并明确编写应该在后台执行的代码 - 否则不会。

在发送电子邮件和调整图片大小时 - 鼓励他们使用后台工作人员完成这些任务,但这不是必须的。只要你没有看到请求的超时,你就可以了。

如果您决定将来使用delayed_job,请查看workless gem - 它需要时自动调整工作人员dyno,然后将其缩小为零。我在我的项目中使用它,这节省了我很多钱。