ActiveMQ + Stomp

| コメント(0) | トラックバック(0)

今度提案をする某プロジェクトのためにGearmanやTheSchwartzをみていたら、最終的にはActiveMQを発見。知らんかったわぁ、不勉強。

ちなみに渡したいのバイナリデータなので、こんな感じで

./bin/activemq # Publisher use strict; use Net::Stomp; use MIME::Base64; use Storable qw(freeze); my $stomp = Net::Stomp->new( { hostname => 'localhost', port => '61613' } ); $stomp->connect( { login => 'hello', passcode => 'there' } ); for (1..100_000) { my $h = encode_base64(freeze({ hoge => $_ })); $stomp->send( { destination => '/queue/foo', body => $h } ); } $stomp->disconnect; # Consumer use strict; use Net::Stomp; use Data::Dump (); use MIME::Base64; use Storable qw(thaw); my $stomp = Net::Stomp->new( { hostname => 'localhost', port => '61613' } ); $stomp->connect( { login => 'hello', passcode => 'there' } ); $stomp->subscribe({ destination => '/queue/foo', ack => 'client', 'activemq.prefetchSize' => 1 }); while (1) { my $frame = $stomp->receive_frame; my $h = thaw(decode_base64( $frame->body ) ); $stomp->ack( { frame => $frame } ); print STDERR Data::Dump::dump($h), "\n"; } $stomp->disconnect;

メッセージキューみたいなものって今まで何回も書いてきたけど、これは便利でいいな。

ちなみにこれを勉強していたらちょうどCatalystのMLで同じようなトピックやってた。このごろシンクロ率が高い。

Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ