我正在尝试使用Apache Storm解决问题。我有以下疑问。
execute()
,prepare()
等)之外,是否有任何方法可以在螺栓中添加用户定义的函数?如果可能,如何从execute()
?答案 0 :(得分:0)
当然你可以为你添加任何方法,是的,它也可以是递归的。我不确定你是什么意思"如何从execute()
调用这样的函数 - 只需从那里调用它 - 它是一种常规方法:
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);
}
}
}