« MySQL のウォームアップ (InnoDB編) | メイン | Re: for 文を setTimeout に変換する »
2007年11月07日
メッセージキュー事始め in Perl - コマンドラインクライアントを作ってみた
メッセージキューの勉強をかねて STOMP のコマンドラインクライアントを書いてみました。STOMP だから ActiveMQ とも通信可能だろうし、動作確認やテスト用のスタブ作成などに使えるはず。ソースはこちら: stompy
1. メッセージキューを起動 (POE::Component::MessageQueue を使用)
% /usr/bin/mq.pl --data-dir /tmp/mq
2. キューに書き込み
% echo 'hello 1' | ./stompy --destination=/queue/test % echo 'hello 2' | ./stompy --destination=/queue/test % echo 'hello 3' | ./stompy --destination=/queue/test
3. キューから読み込み
% ./stompy --subscribe=/queue/test hello 1 hello 2 hello 3 ^C %
以下のようなオプションを用意しました。
% ./stompy --help Stompy 0.01 - a command line stomp client ./stompy [options] Options: --host=host (default: localhost) --port=port (default: 61613) --persistent=[0|1] (default: 1) --username=user (default: ENV{USER}) --password=pass (default: empty string) --destination=path (destination) --subscribe=path (subscription path) --escape=exp (egexp for escaping the data received: default: none) --help Either of --destination or --subscribe is mandatory. %
--escape=exp あたりでちょっと遊び。--escape='s/\n/\\n/g; $_ .= "\n"' とかやると、改行を「\n」に変換して、メッセージ間を改行で分割するとか。パイプ読み込み用です。
POE::Component::MessageQueue および STOMP を使い始めるにあたっては、非同期メッセージングを実現するPOE::Component::MessageQueue を試してみた : no hacking, no life が、とても参考になりました。ありがとうございます。
投稿者 kazuho : 2007年11月07日 16:16
トラックバック
このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/1634