如何避免heroku停止我的dyno?

iwe*_*ein 6 keepalive heroku

我定期为客户构建MVP。我经常在 Heroku 上部署,以便他们可以查看产品是否有效并向潜在客户和投资者演示。

然后我在 heroku 上部署了一个应用程序,它就像一个魅力,如果不是为了一件小事。该应用程序需要大约 30 秒才能启动,如果没有流量,heroku 有一个令人讨厌的习惯,即杀死 dyno。我的客户现在将该应用程序用于演示目的,因此负载极低且断断续续。

我正在寻找一个最好的解决方案:

  • 具有成本效益
  • 可以同时应用于多个应用程序

避免第一个请求花费 30 秒的最佳方法是什么?

Bri*_*dan 7

Heroku 现在有一个与 cron 等效的附加组件,称为Scheduler。基于教程

  1. 在 app/lib/tasks 中,添加一个scheduler.rake定义了此任务的文件:

    desc "This task is called by the Heroku cron add-on"
    task :call_page => :environment do
       uri = URI.parse('http://www.myapp.org/')
       Net::HTTP.get(uri)
    end
    
    Run Code Online (Sandbox Code Playgroud)
  2. 从 Heroku 控制面板或控制台添加“调度程序”插件:

    heroku addons:add scheduler:standard

  3. 将调度程序配置为每小时运行一次此任务。

    heroku addons:open scheduler

我怀疑这是 Heroku 的首选方法,因为 Heroku 社区代表在一次演讲中演示了这种技术。