Hi everybody,
I'm trying to have sent tick tuples to a bolt I have.
In the bolt I have these methods
def execute(tuple: Tuple){
isTickTuple(tuple) match {
case true =>
println("TICK TUPLE FOUND")
case false =>
println("regular TUPLE FOUND")
}
}
override def getComponentConfiguration(): java.util.Map[String,AnyRef] = {
val conf = new Config()
val tickFrequencyInSeconds = sendPeriodMs * 1000
conf.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS,
Long.box(tickFrequencyInSeconds))
conf
}
def isTickTuple(tuple:Tuple):Boolean = {
tuple.getSourceComponent().equals(Constants.SYSTEM_COMPONENT_ID) &&
tuple.getSourceStreamId().equals(Constants.SYSTEM_TICK_STREAM_ID)
}
The code never prints "TICK TUPLE FOUND" but in the log I do see that a tick
tuple was received
executor [INFO] Processing received message source: __system:-1, stream:
__tick, id: {}, [30]
Why can't I find these tick tuples when running, but they appear in the log? Do
tick tuples have some special logic which makes them transparent to the bolt?
I use storm 0.8.X
-Adrian