• ブログ
  • Photoshare
  • キーワード
  • ブックマーク
  • ふぉとす
  • 写真
  • ログイン

kaeruspoon

« Double Arrayの勉強中 | 今週の休日の過ごし方 »
  • Thinサーバーをまた使ってみる 2008-01-24 00:09:44 Append 342

     Rubyで書かれたwebサーバ Thinも、いつの間にかバージョン0.5.4になっていたので、また試してみることにします。以前、試してみたとき(「webサーバ Thin を使ってみる」)は、HTTPヘッダがおかしなことになって、cookieがうまく働かなかったりしましたが、今回は修正されているみたい。また試してみることにします。
     関係ないけど、Thinのコードネームはおもしろいね。今回はFlying Mustardだそうです。

     spider-manさんがすでに試されていますが、Thinにクラスタ機能が実装されました。が、まだちょっと使いにくそう。なので、以前作ったthin_clusterを改良してみました。

    #!/usr/bin/ruby
    require 'yaml'
    
    CONFIG_FILE = "config/thin_cluster.yml"
    KEY = {"e" => :env, "p" => :port, "s" => :servers}
    
    def error
      puts "thin_cluster config|start|stop [options]"
      exit
    end
    
    error if ARGV.size < 1
    case ARGV.shift
    when "config"
      config = {:env => "development", :port => 3000, :servers => 1}
    
      work = nil
      ARGV.each do |argv|
        if argv =~ /^\-([eps])(.*)$/
          work = nil
          if $2 && !$2.empty?
            config[KEY[$1]] = $2
          else
            work = $1
          end
        elsif work
          config[KEY[work]] = argv
          work = nil
        end
      end
      YAML.dump(config, File.open(CONFIG_FILE, "w"))
    when "start"
      config = YAML.load_file(CONFIG_FILE)
      `thin -e #{config[:env]} -p #{config[:port]} -s #{config[:servers]} -d start`
    when "stop"
      config = YAML.load_file(CONFIG_FILE)
      `thin -p #{config[:port]} -s #{config[:servers]} stop`
    else
      error
    end
    

     ソースを見れば一目瞭然だろうけど念のため使い方。すべてRAILS_ROOTで実行します。
     まずは設定。

      thin_cluster config -p3000 -e production -s 2
    

    一度設定しておけば、起動するときは

      thin_cluster start
    

    停止するときは

      thin_cluster stop
    

    でOKです。

    Commentコメント(1) Pageリンク元(171)
« Double Arrayの勉強中 | 今週の休日の過ごし方 »

プロフィール

おおいしつかさ

過去の記事

2006年
12月
2007年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2008年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2009年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2010年
1月 2月 3月

キーワード一覧

ActionScript Ajax AmazonResources Erlang git github iPhone javascript Javascript Kaerukeyword kaeruspoon Mac merb milook MiyazakiResistance NSR Objective-C perl Perl Rails Ruby Ruby on Rails RubyKaigi speedpetal subversion Thin Thinkpad tokyobike TRPG twitter ubuntu Ubuntu VAIO VAIO typeZ Waves WordScoop Xen ぐりぐり しろさん カンタロー スノボー ドトール ドライブ バイク プログラミング ユルさん 執筆 宮崎 日本酒 模型 猫 町田 真中洋嗣 自転車
Baner