use of io.nuls.message.bus.processor.thread.NulsMessageCall in project nuls by nuls-io.
the class MessageClassificationProcessor method doHandlers.
private void doHandlers(DisruptorData<ProcessData<E>> disruptorData) {
if (null == disruptorData || disruptorData.getData() == null) {
Log.warn("there is null data in disruptorData!");
return;
}
if (disruptorData.isStoped()) {
disruptorData.setStoped(false);
return;
}
ProcessData processData = disruptorData.getData();
Class<? extends BaseMessage> serviceId = processData.getData().getClass();
Set<NulsMessageHandler> handlers = handlerManager.getHandlerList(serviceId);
ThreadPoolExecutor handlerExecutor = (ThreadPoolExecutor) handlerService.get(serviceId);
if (handlerExecutor == null) {
handlerExecutor = TaskManager.createThreadPool(1, 1000000, new NulsThreadFactory(MessageBusConstant.MODULE_ID_MESSAGE_BUS, "disruptor-processor"));
handlerService.put(serviceId, handlerExecutor);
}
for (NulsMessageHandler handler : handlers) {
handlerExecutor.execute(new NulsMessageCall(processData, handler));
}
}
Aggregations