SQLの窓

2010年02月06日


Ruby : 自作WEBアプリケーションの呼び出しに使って機能を拡張する

Ruby の Mechanize を使って自分が作った WEBアプリケーションの機能拡張を比較的簡単に実装できます。この例のアプリケーションの処理がある分類毎なので、それをある程度一括で処理してしまおうというものです。運用上の処理として、対象が多くなると手作業では大変になりますので、利用してみました。

注意するのは、この場合サーバから Perl の cgi を呼び出すので、あまり大量の処理を行うとサーバーに負荷をかけすぎる事になるので、注意して数を調整する配慮は必要となります。

ここで指定しているタイムアウトは、CPU の負荷では無く、一回の呼び出しがネットワークなのでそのタイムアウトになります。

ここで利用している agent.post は、標準のメソッドですが、これを拡張する方法もあります。

※ 以下のサンプルコードでは、継続行の使い方のガイドラインも示しています
#!/usr/local/bin/ruby
print "Content-type: text/html; Charset=shift_jis\n\n"

# エラーを出力する為の処理
$stderr = $stdout

# Ruby 本体をWEBアプリとして使う時の為の定義
# ( ここでは使っていません )
require "cgi"
cgi = CGI.new
require 'uri'

# さくらインターネットで WWW::Mechanize をインストールして
# 利用するのに必要だった定義
ENV['GEM_HOME']="/home/lightbox/gems"
$LOAD_PATH.push('/home/lightbox/lib')

require 'rubygems'
require 'mechanize'
# **********************************************************
# 処理本体
# **********************************************************

agent = WWW::Mechanize.new

# 呼び出しタイムアウト設定
# ( \ で継続行 )
agent.open_timeout \
	= 60 * 10
# ( = 演算子で継続行 )
agent.read_timeout =
	60 * 10

# ループ処理用配列
mid = [ 
'CprogBase' \
,'CommonSpec' 
]

# 以下だと継続行はいりません
mid = [ 
'CprogBase',
'CommonSpec' 
]

p mid
print "<br>"

# 配列の要素ぶんの繰り返し処理
(mid.length).times { |i|
	agent.post('WEBアプリケーションのURL', 
		{ 
			'SendButton' => '一括', 
			'CommandField' => 'パスワード', 
			'mid' => mid[i] 
		})
	print "#{mid[i]}<br>"
}

print "ok"

関連する記事

Mechanize : クラスのメソッドをオーバライド
してヘッダーを送れるようにしてiPhoneとしてサーバに認識させる




タグ:ruby Mechanize
posted by lightbox at 2010-02-06 15:19 | Ruby | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり