2016-04-15 22 views
0

Apache Stormを使用して問題を解決しようとしています。私は次の質問をしています。Apache Stormでユーザー定義関数を追加する方法

  1. ​​、prepare()などのような関数に建て以外のボルトでユーザー定義関数を追加する方法はありますか?可能であれば、そのような関数を​​から呼び出す方法は?
  2. Boltに '再帰関数'の種類のロジックを追加することも可能ですか?もちろん

答えて

0

あなたがボルトに任意のメソッドを追加することができ、そしてはい、それはまた、再帰的にすることができます。私はあなたがどういう意味を持っているのかよく分かりません。「​​からこのような関数を呼び出す方法は、そこから呼び出すだけです。通常の方法です。

public class MyBolt extends IRichBolt { 
    void prepare(Map stormConf, TopologyContext context, OutputCollector collector) { /* put your code here */ } 
    void cleanup() { /* put your code here */ } 
    void declareOutputFields(OutputFieldsDeclarer declarer) { /* put your code here */ } 
    Map<String, Object> getComponentConfiguration() { /* put your code here */ } 

    void execute(Tuple input) { 
     // just call the new methods 
     int x = myFirstFunction(); 
     mySecondFunction(5); 
    } 

    // can also be public or protected etc (any return type or parameters are ok) 
    private int myFirstFunction() { 
     return 0; 
    } 
    // recursive 
    private void mySecondFunction(int a) { 
     while(--a > 0) { 
      mySecondFunction(a); 
     } 
    } 
} 
関連する問題