use of org.wso2.siddhi.core.util.statistics.LatencyTracker in project siddhi by wso2.
the class Scheduler method sendTimerEvents.
/**
* Go through the timestamps stored in the {@link #toNotifyQueue} and send the TIMER events for the expired events.
*/
protected void sendTimerEvents() {
Long toNotifyTime = toNotifyQueue.peek();
long currentTime = siddhiAppContext.getTimestampGenerator().currentTime();
while (toNotifyTime != null && toNotifyTime - currentTime <= 0) {
toNotifyQueue.poll();
StreamEvent timerEvent = streamEventPool.borrowEvent();
timerEvent.setType(StreamEvent.Type.TIMER);
timerEvent.setTimestamp(toNotifyTime);
streamEventChunk.add(timerEvent);
if (lockWrapper != null) {
lockWrapper.lock();
}
threadBarrier.pass();
try {
if (siddhiAppContext.isStatsEnabled() && latencyTracker != null) {
try {
latencyTracker.markIn();
singleThreadEntryValve.process(streamEventChunk);
} finally {
latencyTracker.markOut();
}
} else {
singleThreadEntryValve.process(streamEventChunk);
}
} finally {
if (lockWrapper != null) {
lockWrapper.unlock();
}
}
streamEventChunk.clear();
toNotifyTime = toNotifyQueue.peek();
currentTime = siddhiAppContext.getTimestampGenerator().currentTime();
}
}
use of org.wso2.siddhi.core.util.statistics.LatencyTracker in project siddhi by wso2.
the class SinkMapper method init.
public final void init(StreamDefinition streamDefinition, String type, OptionHolder mapOptionHolder, List<Element> unmappedPayloadList, Sink sink, ConfigReader mapperConfigReader, LatencyTracker mapperLatencyTracker, SiddhiAppContext siddhiAppContext) {
this.mapperLatencyTracker = mapperLatencyTracker;
this.siddhiAppContext = siddhiAppContext;
sink.setTrpDynamicOptions(trpDynamicOptions);
this.sinkListener = sink;
this.optionHolder = mapOptionHolder;
this.type = type;
if (unmappedPayloadList != null && !unmappedPayloadList.isEmpty()) {
templateBuilderMap = new HashMap<>();
for (Element e : unmappedPayloadList) {
TemplateBuilder templateBuilder = new TemplateBuilder(streamDefinition, e.getValue());
if (templateBuilderMap.containsKey(e.getKey())) {
throw new SiddhiAppCreationException("Duplicate Keys, " + e.getKey() + ", in @payload() ");
}
templateBuilderMap.put(e.getKey(), templateBuilder);
}
}
init(streamDefinition, mapOptionHolder, templateBuilderMap, mapperConfigReader, siddhiAppContext);
}
Aggregations