Search in sources :

Example 1 with ProcessData

use of io.nuls.message.bus.model.ProcessData 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));
    }
}
Also used : NulsThreadFactory(io.nuls.kernel.thread.manager.NulsThreadFactory) NulsMessageCall(io.nuls.message.bus.processor.thread.NulsMessageCall) NulsMessageHandler(io.nuls.message.bus.handler.intf.NulsMessageHandler) ThreadPoolExecutor(java.util.concurrent.ThreadPoolExecutor) ProcessData(io.nuls.message.bus.model.ProcessData)

Aggregations

NulsThreadFactory (io.nuls.kernel.thread.manager.NulsThreadFactory)1 NulsMessageHandler (io.nuls.message.bus.handler.intf.NulsMessageHandler)1 ProcessData (io.nuls.message.bus.model.ProcessData)1 NulsMessageCall (io.nuls.message.bus.processor.thread.NulsMessageCall)1 ThreadPoolExecutor (java.util.concurrent.ThreadPoolExecutor)1