dns*_*ero 12 automation heroku ruby-on-rails-3
我希望我的Rails 3.1应用程序在早上8点扩展到1个web dyno,然后在下午5点降低到0 web dynos.
但是,我不想注册付费服务,我不能指望我的家用电脑连接到互联网.
似乎Heroku Scheduler应该让这个变得微不足道.任何快速解决方案或链接?
dns*_*ero 11
答案是'是'你可以从调度程序那里做到这一点,一旦你知道了答案,这是微不足道的:
向lib/tasks/scheduler.rake添加rake任务:
desc "Scale up dynos"
task :spin_up => :environment do
heroku = Heroku::Client.new('USERNAME', 'PASSWORD')
heroku.ps_scale(ENV['APP_NAME'], :type=>'web', :qty=>2)
end
# Add a similar task to Spin down
Run Code Online (Sandbox Code Playgroud)添加Scheduler插件:heroku插件:添加调度程序:标准
注意: 需要步骤1,因为我找不到任何其他方式来确定应用程序名称(我为我的应用程序使用'staging'和'production'环境.
第3步是必需的,因为否则ruby命令会出错,因为它要求您首先同意(通过是/否响应)您将因此操作而向您收取费用.
在第4步中,我找不到任何关于如何通过heroku gem使用API密钥执行此操作的文档,因此看起来需要user/pass.
希望这有助于其他人!
Kyl*_*e C 11
刚刚实现了这种方法(@dnszero上面的答案很好),我想我会用Heroku的新API更新答案.
将您的应用名称添加为heroku配置变量
require 'heroku-api'
desc "Scale UP dynos"
task :spin_up => :environment do
heroku = Heroku::API.new(:api_key => 'YOUR_ACCOUNT_API_KEY')
heroku.post_ps_scale(ENV['APP_NAME'], 'web', 2)
end
Run Code Online (Sandbox Code Playgroud)
这是heroku(2.31.2),heroku-api(0.3.5)