mikutter advent calendar 2013 1日目
mikutterでビッグデータ処理
はいネタです.
とりあえずmikutterにmessagepack-rpcを導入します.
以下のプラグインを.mikutter/plugin/に導入します.
require 'msgpack/rpc' Plugin.create(:rpc) do UserConfig[:tw_port] ||= 5000 class Remote def tweet(msg) Service.primary_service.update(msg) true end def bigdata(str) Plugin.activity :system, str true end end on_boot do start end def start @server = MessagePack::RPC::Server.new @server.listen('0.0.0.0', UserConfig[:tw_port], Remote.new) Thread.new do @server.run end end def stop @thread.kill end settings "rpc" do adjustment "port number", :tw_port, 1024, 0xffff end end
これを導入するとmikutterでmsgpack-rpcが使えるようになります.
そこでクライアントとして以下のプログラムを実行します.
require 'msgpack/rpc' 5000.times do |t| cli = MessagePack::RPC::Client.new('127.0.0.1', 5000) cli.call(:bigdata, t.to_s) cli.close end
この例だと5000個のデータをmikutterに投げつけてます.
mikutterは受け取るのはそんなに時間はかかりませんが,表示するのに時間がすごくかかります.
ので,mikuttter.dを使ってGUI表示しなければそんなに時間かからないと思うのでそこそこ使えるのでは?