public void EnqueueEventoUmdf(EventoUmdf e) { //logger.DebugFormat("Enfileirando msg [{0}] para LOF e NEG consumer", e.MsgSeqNum); if (!e.MsgType.Equals(ConstantesUMDF.FAST_MSGTYPE_MELHOR_OFERTA) && !e.MsgType.Equals(ConstantesUMDF.FAST_MSGTYPE_SECURITYSTATUS)) { LivroOfertasConsumer.EnqueueEventoUmdf(e); } NegociosConsumer.EnqueueEventoUmdf(e); }
void EPRuntime_UnmatchedEvent(object sender, UnmatchedEventArgs e) { logger.Error("UnmatchedEvent [" + e.Event.EventType.ToString() + "]"); EventoUmdf evento = e.Event.Underlying as EventoUmdf; if (evento != null) { logger.Debug("UNMATCHED " + "MsgSeqNum=[" + evento.MsgSeqNum + "] MsgType=[" + evento.MsgType + "] TemplateId=[" + evento.TemplateID + "] Segment=[" + evento.UmdfSegment + "] Channel=[" + evento.ChannelID + "] message=[" + evento.MsgBody.ToString() + "]"); } }
protected virtual void processaEventoUmdf(EventoUmdf evento) { // Se nao existe thread para tratar o evento, cria EventoUmdfWorkerState workerState = null; if (evento == null) { logger.Error("EventoUmdf nao pode ser nulo"); return; } if (String.IsNullOrEmpty(evento.ChannelID)) { logger.Error("Eita porra....channelID nulo"); return; } if (!poolWorkers.TryGetValue(evento.ChannelID, out workerState)) { logger.Info("Criando worker para channel [" + evento.ChannelID + "]"); workerState = new EventoUmdfWorkerState(); workerState.ChannelID = evento.ChannelID; workerState.Thread = new Thread(new ParameterizedThreadStart(eventoUmdfThreadWork)); workerState.Thread.Name = myThreadName + "-Worker-" + workerState.ChannelID; workerState.Thread.Start(workerState); poolWorkers.Add(evento.ChannelID, workerState); } //bool sinaliza = workerState.QueueEventos.IsEmpty; workerState.QueueEventos.Enqueue(evento); if (MDSUtils.shouldLog(workerState.lastEnqueueLog, 30)) { logger.Info("processaEventoUmdf para channelID [" + workerState.ChannelID + "] fila:" + workerState.QueueEventos.Count); workerState.lastEnqueueLog = DateTime.UtcNow.Ticks; } //if (sinaliza) //{ // lock (workerState.SyncObj) // { // Monitor.Pulse(workerState.SyncObj); // } //} }
public static void GenerateEsperEvent(Message message, String templateId, String channelID, String segment, String msgType, int marketDepth, StreamTypeEnum streamType) { try { EventoUmdf evento = new EventoUmdf(); evento.MsgSeqNum = message.GetInt("MsgSeqNum"); evento.MsgType = msgType; evento.TemplateID = templateId; evento.MsgBody = message; evento.ChannelID = channelID; evento.UmdfSegment = segment; evento.MarketDepth = marketDepth; evento.StreamType = streamType; if (logger.IsDebugEnabled) { logger.Debug("Gerando evento Esper " + "MsgSeqNum=[" + evento.MsgSeqNum + "] MsgType=[" + evento.MsgType + "] TemplateId=[" + evento.TemplateID + "] Segment=[" + evento.UmdfSegment + "] Channel=[" + evento.ChannelID + "] Stream=[" + evento.StreamType.ToString() + "] MarketDepth=[" + evento.MarketDepth.ToString() + "] message=[" + evento.MsgBody.ToString() + "]"); } ContainerManager.Instance.EnqueueEventoUmdf(evento); } catch (Exception ex) { logger.Error("Exception em generateEsperEvent - MsgSeqNum=[" + message.GetInt("MsgSeqNum") + "]"); logger.Error(ex.Message, ex); } return; }
protected override void trataEventoUmdf(EventoUmdf evento) { try { String msgType = evento.MsgType; OpenFAST.Message umdfMessage = evento.MsgBody; String instrumento = ""; String msgID = evento.MsgSeqNum.ToString(); String channelId = evento.ChannelID; bool isPuma = dicCanais[channelId].channelConfig.IsPuma; bool isBMF = (dicCanais[channelId].channelConfig.Segment.ToUpper().Equals(ConstantesMDS.CHANNEL_UMDF_SEGMENT_BMF) ? true : false); //bool isPuma20 = dicCanais[channelId].channelConfig.IsPuma20; int marketDepth = evento.MarketDepth; bool sendToStreamer = true; if (logger.IsDebugEnabled) { logger.DebugFormat("channelID ....: {0} (isPuma={1})", channelId, isPuma.ToString()); logger.DebugFormat("msgID .......: {0}", msgID); logger.DebugFormat("Message ......: {0}", umdfMessage.ToString()); } if (umdfMessage.IsDefined("Headline")) { logger.Info("Head [" + umdfMessage.GetString("Headline") + "]"); } if (umdfMessage.IsDefined("Text")) { logger.Info("Text: [" + umdfMessage.GetString("Text") + "]"); } if (umdfMessage.IsDefined("URLLink")) { logger.Info("URL: [" + umdfMessage.GetString("URLLink") + "]"); } } catch (Exception ex) { logger.Error("NewsConsumerBase.TrataEventoUmdf(): " + ex.Message, ex); } }
public virtual void EnqueueEventoUmdf(EventoUmdf e) { try { //bool sinaliza = queueEventos.IsEmpty; queueEventos.Enqueue(e); //if (sinaliza) //{ // lock (SyncObj) // { // Monitor.Pulse(SyncObj); // } //} } catch (Exception ex) { logger.Error("EnqueueEventoUmdf(): " + ex.Message, ex); } }
public static void EnqueueEventoUmdfNews(Message message, String templateId, String channelID, String segment, String msgType, StreamTypeEnum streamType) { try { EventoUmdf evento = new EventoUmdf(); evento.MsgSeqNum = message.GetInt("MsgSeqNum"); evento.MsgType = msgType; evento.TemplateID = templateId; evento.MsgBody = message; evento.ChannelID = channelID; evento.UmdfSegment = segment; evento.StreamType = streamType; if (logger.IsDebugEnabled) { logger.Debug("Enfileirando evento umdf noticias" + "MsgSeqNum=[" + evento.MsgSeqNum + "] MsgType=[" + evento.MsgType + "] TemplateId=[" + evento.TemplateID + "] Segment=[" + evento.UmdfSegment + "] Channel=[" + evento.ChannelID + "] Stream=[" + evento.StreamType.ToString() + "] message=[" + evento.MsgBody.ToString() + "]"); } ContainerManager.Instance.EnqueueNews(evento); } catch (Exception ex) { logger.Error("EnqueueEventoUmdfNews - MsgSeqNum=[" + message.GetInt("MsgSeqNum") + "]"); logger.Error(ex.Message, ex); } return; }
public void EnqueueNews(EventoUmdf e) { NewsConsumer.EnqueueEventoUmdf(e); }
protected abstract void trataEventoUmdf(EventoUmdf evento);