protected override void trataAssinatura(string tipo, string instrumento, string sessionID)
        {
            string mensagem  = "";
            bool   bsinaliza = false;
            LivroOfertasConsumerBase lofConsumer = ContainerManager.Instance.LivroOfertasConsumer;

            logger.DebugFormat("{0} assinatura de {1} de {2}", sessionID, tipo, instrumento);

            // Aqui tem o pulo do gato
            // interrompe o processamento dos eventos ate a chegada do snapshot
            // para nao quebrar a sequencia do sinal do livro
            lock (objLockSnapshot)
            {
                EventoHttpLivroOfertasAgregado httpLOA;
                httpLOA = lofConsumer.SnapshotStreamerLivroAgregado(instrumento, sessionID);

                logger.Debug("Snapshot LOA de " + instrumento + ": " + httpLOA.livroCompra.Count + "C/" + httpLOA.livroVenda.Count + "V items");

                mensagem = JsonConvert.SerializeObject(httpLOA);
                mensagem = MDSUtils.montaMensagemHttp(ConstantesMDS.TIPO_REQUISICAO_LIVRO_OFERTAS_AGREGADO, instrumento, null, mensagem);

                bsinaliza = queueToStreamer.IsEmpty;
                queueToStreamer.Enqueue(mensagem);
            }

            if (bsinaliza)
            {
                lock (syncQueueToStreamer)
                {
                    Monitor.Pulse(syncQueueToStreamer);
                }
            }
        }
Beispiel #2
0
        public void Start(Dictionary <string, ChannelUDMF> _dctCanais)
        {
            LivroOfertasConsumer = new LivroOfertasConsumerBase(_dctCanais);
            LivroOfertasConsumer.Start();

            NegociosConsumer = new NegociosConsumerBase(_dctCanais);
            NegociosConsumer.Start();

            NewsConsumer = new NewsConsumerBase(_dctCanais);
            NewsConsumer.Start();
        }