JBoss / WildFly (全部俺) Advent Calendar 2013の8日目です。
Infinispan Serverのテストをするときに、まず1万エントリ突っ込む、というようなことをよくやります。他にも並列アクセスだとかいろいろなシナリオを実行したいのですが、このようなやたら頻繁に書き直すようなトライアンドエラー系の仕事をJavaでやるというのは罰ゲームっぽいのでスクリプトでやりたい。Infinispan Serverにはispn-cli.shという簡易CLIが付属してはいるのですが、もう少し柔軟性が欲しいところです。
というわけでJRubyでjruby-hotrod.rbというのを書きました。
バルクオペレーションのテスト前提なのでキー末尾にはカウントがくっつく仕様です。一旦こんなスクリプト書いてしまえばあとは煮るなり焼くなりマルチスレッドから負荷かけるようにするなりある程度自由にできます。
jruby jruby-hotrod.rb put -c 10000
手元の環境だと2.5秒くらいで1万エントリのputできます。
JRubyで書くとDir.glob each requireできるのでMavenとかclasspathとか最初の面倒なところすっとばしてコード書き始められるので良いですね。