package com.sinosoft.event; import com.google.common.eventbus.AsyncEventBus; import com.google.common.eventbus.EventBus; import com.sinosoft.event.BussinessEvent; import com.sinosoft.event.MonitorEvent; import com.sinosoft.event.listener.BussinessEventListener; import com.sinosoft.event.listener.DeadEventListener; import com.sinosoft.event.listener.MonitorEventListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class EventSender { private static final Logger logger = LoggerFactory.getLogger(EventSender.class); private static EventBus eventBus = null; private static EventBus asyncEventBus = null; private static ExecutorService pool = null; static { init(); } private static void init() { if (eventBus == null) { eventBus = new EventBus("EventEngine"); //registerAllListener(); registerListener(new BussinessEventListener()); registerListener(new MonitorEventListener()); registerListener(new DeadEventListener()); } if (asyncEventBus == null) { pool = Executors.newFixedThreadPool(50); //pool = Executors.newCachedThreadPool(); asyncEventBus = new AsyncEventBus("AsyncEventEngine",pool); //registerAllListener(); registerAsyncBusListener(new BussinessEventListener()); registerAsyncBusListener(new MonitorEventListener()); registerAsyncBusListener(new DeadEventListener()); } } public static void postEvent(Event event) { eventBus.post(event); } public static void postAsyncEvent(Event event) { asyncEventBus.post(event); } /** * 注册监听 */ public static void registerListener(EventListener listener) { try { eventBus.register(listener); } catch (Exception e) { // TODO Auto-generated catch block logger.error("程序执行异常",e); } } public static void registerAsyncBusListener(EventListener listener) { try { asyncEventBus.register(listener); } catch (Exception e) { // TODO Auto-generated catch block logger.error("程序执行异常",e); } } }