我没有在Rails应用程序中专门添加任何后台任务。该应用程序将发送电子邮件,并将调整图像大小。但我没有在我的应用中添加任何后台流程,例如delayed_jobs
或Resque
。目前我不打算添加后台进程。那我需要一个工人dyno吗?
如果我添加一个worker dyno,这些任务是否会由worker dyno自动处理?
答案 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,然后将其缩小为零。我在我的项目中使用它,这节省了我很多钱。