【问题标题】:Do I need a worker dyno on Heroku?我需要 Heroku 上的工人测功机吗?
【发布时间】:2013-07-28 08:08:21
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    如果您决定在未来使用delayed_job,请查看workless gem - 它会在需要时自动缩放工作测功机,然后将其缩放回零。我在我的项目中使用它,这节省了我不少钱。

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2017-02-13
        • 2012-01-15
        • 2018-06-30
        • 2016-07-26
        • 2020-12-12
        • 2014-10-02
        • 1970-01-01
        • 2020-05-18
        • 1970-01-01
        相关资源
        最近更新 更多