最近私はApache Stormと仕事を始めました。私はClojure Storm DSLとLeiningenとストームを使用します。Clojure Storm Flux
嵐のトポロジ管理用の非常にクールなツールがあります:Storm Flux。
私の質問は次のとおりです:clojureで嵐でコーディングしているときに、どのようにしてFluxを使用できますか?
最近私はApache Stormと仕事を始めました。私はClojure Storm DSLとLeiningenとストームを使用します。Clojure Storm Flux
嵐のトポロジ管理用の非常にクールなツールがあります:Storm Flux。
私の質問は次のとおりです:clojureで嵐でコーディングしているときに、どのようにしてFluxを使用できますか?
私は解決策を見つけた:
(ns your.namespace.boltname
(:use
[org.apache.storm clojure config])
(:gen-class :implements [org.apache.storm.topology.IRichBolt]))
(defbolt my-bolt
["data"]
[tuple collector]
(emit-bolt! collector [(f (.getString tuple 0))] :anchor tuple)
(ack! collector tuple))
(defn -execute [this tuple]
(.execute my-bolt tuple))
(defn -prepare [this conf context collector]
(.prepare my-bolt conf context collector))
(defn -cleanup [this]
(.cleanup my-bolt))
(defn -declareOutputFields [this output]
(.declareOutputFields my-bolt output))
(defn -getComponentConfiguration [this]
(.getComponentConfiguration my-bolt))
はyour project.clj
に:aot :all
を追加することを忘れないでください。
など、あなたのフラックスtopology.yaml
何かで:私はわからないが、私はあなたがそれぞれの注ぎ口のクラスファイル(、ボルトにあなたのClojureコードをコンパイルする必要があると思いますすべて:)
@ MatthiasJ.Saxこのソリューションについてどう思いますか?時間を稼働する前にクラスが必要になるため、reifyを使用できませんでした –
だ
)ので、これらのクラスファイルを柔軟に使用することができます。 –
ありがとう@ MatthiasJ.Sax、私はこの解決策を試みるが、私は何かが恋しい。私のnsで私は使用します:gen-classと私はdefspoutマクロを持っています。しかし、コンパイルされたファイルはクラスを生成するためにIRichSpoutオブジェクトを受け取っていませんでした:(理解しましたか? –
または少しの例がありますか? –