21

我只是找不到一个测功机可以在 heroku 上托管多少应用程序?

我计划托管很多流量很小的小应用程序。

感谢您的回答

4

4 回答 4

13

Dynos 是根据每个应用程序计算的。

但是,这并不意味着您需要购买 3 个 dynos 才能运行 3 个应用程序。您可以使用 1 个测功机创建 3 个应用程序。

于 2010-02-12T10:41:38.023 回答
7

每个 Dyno / subdomain.heroku.com 一个应用程序。

于 2010-02-12T09:37:38.480 回答
0

我相信您可以在 Web dyno 中启动另一个 Web 进程。我已经和工人一起做了。一名工人测功机有 3 个子流程。每个都是 rails 应用程序的副本,并且每个都在数据库上独立运行。你如何设法启动正确的应用程序,我不确定......而且你需要一个控制器应用程序。
我不想说这是不可能的,因为我不相信这种说法是有建设性的。我会说,以每月 34 美元的额外测功费生成一个新应用程序会更好地利用您的时间/金钱。

一个额外的担忧。每个 web dyno 都允许有限的内存量,并且 rails 并不完全以内存轻量而闻名。当我产生子工作者时,我遇到了很多内存问题。如此之多,以至于我最终推出了该功能。如果我工作一个下午来尝试“调整”约束条件,我花在老板身上的钱比 4 个月额外的 dyno 还多,所以我必须权衡一下。

无论如何...这就是我分叉工人的方式

require 'heroku-api'

...

  def self.fork_workers(iDesired = 5, iQueue = nil)
    cmd = "rake jobs:work WORKER=MY_SERF"
    cmd += " QUEUES=#{iQueue}" if(iQueue)
    p cmd  
    if(RUBY_PLATFORM["mingw32"].nil?)  #DON'T WORK ON WINDOWS
      currentCount = Rush::Box.new.processes.filter(:cmdline => /#{cmd}/ ).size;
      iDesired -= currentCount;
      if(iDesired > 0)
        iDesired.times { Rush::Box.new[Rails.root].bash( cmd, :background => true ) }
      elsif(iDesired < 0)

      end
    end    
  end

最后一点:如果一个小时单独放置,一个测功机应用程序将进入睡眠状态......您的用户会在唤醒过程中感受到延迟。 https://devcenter.heroku.com/articles/dynos#dyno-idling

于 2013-06-16T23:10:08.397 回答
0

这里有一些解释:http: //docs.heroku.com/performance#backlog-too-deep

于 2010-07-09T15:40:01.107 回答