最小限のステップで AP4R を動かしてみる
昨日のエントリでは長々と書いてしまったので、もっとシンプルに書いてみます。シェルに入力するコマンドだけ拾ってみました。
AP4R の起動までに 8コマンド(パッチ分を抜けば 5コマンド!)、サンプルアプリの起動までに 5コマンドなので、ちょっと動かしてみる気にもなりやすいかなぁ... (^^;
- シェルを1つ立ちあげて、AP4R を起動
% cd $home % ruby -v # ruby 1.8.6 ... % gem -v # 0.9.2 % sudo gem install ap4r -y # ap4r 0.3.0 etc % sudo vi /usr/local/lib/ruby/gems/1.8/gems/reliable-msg-1.1.0/lib/reliable-msg/queue-manager.rb # modified L236 (drb.merge を drb = drb.merge に修正) % sudo vi /usr/local/lib/ruby/gems/1.8/gems/reliable-msg-1.1.0/lib/reliable-msg/cli.rb # modified L212 (drb.merge を drb = drb.merge に修正) % sudo chmod 757 /usr/local/lib/ruby/gems/1.8/gems/uuid-1.0.3 % ap4r_setup my_ap4r % cd my_ap4r % ruby script/start -c config/queues_disk.cfg
- もう1つシェルを立ちあげて、サンプルアプリを起動
% cd $home % gem list --local rails # rails 1.2.3 % curl -O http://rubyforge-files.ruby-forum.com/ap4r/HelloWorld-0.3.0.tar.gz % tar xvf HelloWorld-0.3.0.tar.gz % cd HelloWorld % ruby script/server
- ブラウザを立ちあげて、以下の URL を実行
なんの変化もないさびしい画面ですが、実行結果がすぐ返ってきます (ぐるぐるまわるのがすぐ終わります)。
それぞれの違いは非同期の処理を呼び出すときのプロトコルです。
http://localhost:3000/sync_hello/execute_via_http
http://localhost:3000/sync_hello/execute_via_soap
http://localhost:3000/sync_hello/execute_via_xmlrpc
- ファイルへの出力結果を確認
2行目が1行目の10秒後に書き込まれてます。ここが非同期で処理されたとこですね。
いずれの行も Rails 上で動く処理が出力しています。
% cat ~/HelloWorld/HelloWorld.txt Hello # ...written at Sat Apr 07 01:31:54 +0900 2007 World # ...written at Sat Apr 07 01:32:04 +0900 2007
あ、できましたね♪
- SAF機能を利用する場合
いったんサンプルアプリを止めて(ctrl+c)、準備を整えてから再び起動します。
% fink install sqlite3 % sudo gem install sqlite3-ruby % cd ~/HelloWorld % rake db:migrate % ruby script/server
- ブラウザで以下の URL を実行
さきほどと同様の動きに見えますが、いったん SAFテーブルを経由してから後続処理へのメッセージを配信しています。不測の障害時にも安心です。
- 参考
詳しい説明はすっとばしてるので、行間を知りたくなったかたはこちらをご覧ください。
- kiwamu日記 - ap4r-0.3.0 リリース