0

我没有专门向我的 Rails 应用程序添加任何后台任务。该应用程序将发送电子邮件并调整图像大小。但我没有在我的应用程序中包含任何后台delayed_jobs进程Resque。暂时我不会添加后台进程。那么我需要一个工人测功机吗?

如果我添加一个工人测功机,这些任务会由工人测功机自动处理吗?

4

2 回答 2

1

如果您没有运行后台进程,那么没有工作人员测功机应该没问题。

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

在Heroku 网站上可以找到很好的解释:

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

当然,Heroku 的美妙之处在于它的可扩展性……因此,如果您发现您的任务需要很长的响应时间,您可以随时添加一个工作测功机,然后将任务更改为后台任务。

于 2013-07-28T08:22:29.930 回答
1

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

在发送电子邮件和调整图像大小时,鼓励使用后台工作人员来完成这些任务,但这不是必须的。只要您没有看到请求超时,您就应该没问题。

如果您决定delayed_job将来使用worklessgem - 它会在需要时自动缩放 worker dyno,然后将其缩放回零。我在我的项目中使用它,这为我节省了很多钱。

于 2013-07-28T09:34:24.257 回答