我没有专门向我的 Rails 应用程序添加任何后台任务。该应用程序将发送电子邮件并调整图像大小。但我没有在我的应用程序中包含任何后台delayed_jobs
进程Resque
。暂时我不会添加后台进程。那么我需要一个工人测功机吗?
如果我添加一个工人测功机,这些任务会由工人测功机自动处理吗?
我没有专门向我的 Rails 应用程序添加任何后台任务。该应用程序将发送电子邮件并调整图像大小。但我没有在我的应用程序中包含任何后台delayed_jobs
进程Resque
。暂时我不会添加后台进程。那么我需要一个工人测功机吗?
如果我添加一个工人测功机,这些任务会由工人测功机自动处理吗?
如果您没有运行后台进程,那么没有工作人员测功机应该没问题。
但这也取决于您的正常流程。如果您的流程需要很长的请求时间(例如,您的图像调整大小可能就是这种情况),那么将其打包到后台任务中可能会很有用。
在Heroku 网站上可以找到很好的解释:
https://devcenter.heroku.com/articles/background-jobs-queueing
当然,Heroku 的美妙之处在于它的可扩展性……因此,如果您发现您的任务需要很长的响应时间,您可以随时添加一个工作测功机,然后将任务更改为后台任务。
没有任何事情会发生魔法!除非您添加delayed_job
或其他 gem 用于在后台处理任务并明确编写应该在后台执行的代码 - 它不会。
在发送电子邮件和调整图像大小时,鼓励使用后台工作人员来完成这些任务,但这不是必须的。只要您没有看到请求超时,您就应该没问题。
如果您决定delayed_job
将来使用workless
gem - 它会在需要时自动缩放 worker dyno,然后将其缩放回零。我在我的项目中使用它,这为我节省了很多钱。