2008年11月20日

rails環境を呼び出す(drbで使う)

rails環境を持ったdrbサーバの作り方メモ
この場合は、各自処理を実行する@managerインスタンスを排他制御
以下rubyのスクリプト(RAILS_ROOTで実行する)


#!/usr/local/bin/ruby

#RAILS_ROOT/config/boot.rbを読み込む(環境に応じて適当に編集)
require File.dirname(__FILE__) + '/../config/boot'
require RAILS_ROOT + '/config/environment'

#サーバ処理オブジェクトの呼び出しWrapper
class WrapperBidsManager
#ActiveRecord環境の読み込み
@@config = YAML::load(File.open(File.dirname(__FILE__) + '/../config/database.yml'))
ActiveRecord::Base.establish_connection(
#@@config['production']
@@config['development']
)

def initialize
@manager = M.new
@m = Mutex.new
end

def check_and_bid

#if @m.locked?
# #TODO エラーはいて終了
# puts "locked"
#end

@m.synchronize do
#何か処理させる
@manager.doing
end
return true
end
end

class Daemon
def start(wrapper)
DRb.start_service("druby://localhost:9111", wrapper)
puts "listen on " + DRb.uri
end
end

#以下の#はforkが使える環境用

#fork{
# Process::setsid
# fork{
# STDIN.reopen("/dev/null", "r+")
# STDOUT.reopen("/dev/null", "w")
# STDERR.reopen("/dev/null", "w")
#
wrapper = WrapperBidsManager.new
daemon = Daemon.new
daemon.start(wrapper)
# DRb.thread.join
sleep
# }
#}



参考
http://rubyist.g.hatena.ne.jp/yamaz/20070217
タグ:Rails drb
posted by sistailsnow at 11:52| Comment(0) | TrackBack(0) | Railを走ってみた | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/109932505
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。