Herokuの新しいCedar Stackを使う。

今までと大きく違うのはforemanを使ったprocess modelが導入されたこと。要はwebアプリもcronジョブもバックグラウンドタスクもみんな宇宙船UNIX号の仲間たち、foremanで平等に扱おうよということ。具体的にはProcfileにprocessの設定を書いてforeman経由で動かす。

# Gemfile:
source :rubygems
gem 'rack'
# config.ru:
require 'rubygems'
require 'rack'

class App
  def call(env)
    [200, {'Content-Type' => 'text/plain'}, ['hello']]
  end
end

run App.new
# Procfile:
web: bundle exec rackup -p $PORT

こんな感じ。

$ gem install foreman
$ foreman start

ローカルでもforemanで試せる。

$ heroku apps:create --stack cedar
$ git push heroku master
$ heroku apps:open

http://floating-dawn-850.herokuapp.com/

いいね!

process typeを自分で定義する

unixのprocessなら何でもありなので適当に定義できる。

# Procfile:
web: bundle exec rackup -p $PORT
unk: echo unk; sleep 1000
% foreman start
02:23:42 web.1     | started with pid 77070
02:23:42 unk.1     | started with pid 77071
02:23:42 unk.1     | unk
02:23:43 web.1     | [2011-06-23 02:23:43] INFO  WEBrick 1.3.1
02:23:43 web.1     | [2011-06-23 02:23:43] INFO  ruby 1.8.7 (2011-02-18) [i686-darwin10.7.0]
02:23:43 web.1     | [2011-06-23 02:23:43] INFO  WEBrick::HTTPServer#start: pid=77072 port=5000

こいつは自由だぜ。

Comments


(Option)