private void HandlerActionEvent(EventMsg eventMsg) { ActionEventMsg actionMsg = (ActionEventMsg)eventMsg; workerContext.s = actionMsg.sAgent; actionMsg.action(workerContext, actionMsg.attachData); }
public void Close() { EventMsg eventMsg = new EventMsg(); eventMsg.eventType = EventType.EVENT_WORKER_CLOSE; this.Enqueue(eventMsg); workerThread.Join(); }
private void HandlerRouteRpc(EventMsg eventMsg) { RpcEventMsg rpcMsg = (RpcEventMsg)eventMsg; RpcHandler handler = null; if (rpcHandlerMap.TryGetValue(rpcMsg.rpcName, out handler)) { workerContext.s = rpcMsg.sAgent; handler(workerContext, rpcMsg.attachData); } else { sLog.Error("executor", "executor {0} handle route rpc type {1} null.", this.mName, rpcMsg.rpcName); } }
private void HandlerRouteMsg(EventMsg eventMsg) { DataEventMsg dataMsg = (DataEventMsg)eventMsg; MsgHandler handler = null; if (msgHandlerMap.TryGetValue(dataMsg.typeID, out handler)) { workerContext.s = dataMsg.sAgent; handler(workerContext, dataMsg.attchData); } else { sLog.Error("executor", "executor {0} handle route msg type {1} null.", this.mName, dataMsg.typeID); } }
public void Run() { isRunning = true; do { try { tlsCtx.Value = workerContext; EventMsg eventMsg = null; if (!eConcurrQueue.TryTake(out eventMsg, 1)) { continue; } switch (eventMsg.GetEventType()) { case EventType.EVENT_ROUTER_MSG: HandlerRouteMsg(eventMsg); break; case EventType.EVENT_WORKER_CLOSE: HandlerCloseSignal(eventMsg); break; case EventType.EVENT_WORKER_ACTION: HandlerActionEvent(eventMsg); break; case EventType.EVENT_ROUTE_RPC: HandlerRouteRpc(eventMsg); break; default: break; } timerManager.Execute(); } catch (Exception ex) { sLog.Error("executor", "executor {0} worker exception.", this.mName); sLog.Error("executor", ex.Message); sLog.Error("executor", ex.StackTrace); } } while (isRunning); }
public void Enqueue(EventMsg eventMsg) { eConcurrQueue.Add(eventMsg); }
private void HandlerCloseSignal(EventMsg eventMsg) { isRunning = false; }