예제 #1
0
        protected void trataAssinatura(string tipo, string idlogin, string sessionID)
        {
            string                      mensagem    = "";
            ThreadPoolManager           poolManager = ThreadPoolManager.Instance;
            Dictionary <string, string> cabecalho   = MDSUtils.montaCabecalhoStreamer(tipo, null, ConstantesMDS.HTTP_ALGORITMOS_TIPO_ACAO_COMPLETO, idlogin, sessionID);

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

            // 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)
            {
                EventoHttpAlgoritmo httpAlgo = new EventoHttpAlgoritmo();
                httpAlgo.idlogin    = idlogin;
                httpAlgo.cabecalho  = cabecalho;
                httpAlgo.algoritmos = poolManager.SnapshotStreamer(idlogin);

                logger.Debug("Snapshot algoritmos de " + idlogin + ": " + httpAlgo.algoritmos.Count + " items");

                mensagem = JsonConvert.SerializeObject(httpAlgo);
                mensagem = MDSUtils.montaMensagemHttp(ConstantesMDS.TIPO_REQUISICAO_ALGORITMO, idlogin, null, mensagem);

                queueToStreamer.Enqueue(mensagem);
            }
        }
예제 #2
0
        private void despacharEventos(object sender, HttpAlgoritmoEventArgs args)
        {
            try
            {
                string mensagem = null;

                EventoHttpAlgoritmo httpAlgo = args.Evento;

                if (dctSessions.ContainsKey(httpAlgo.idlogin))
                {
                    mensagem = JsonConvert.SerializeObject(httpAlgo);
                    mensagem = MDSUtils.montaMensagemHttp(ConstantesMDS.TIPO_REQUISICAO_ALGORITMO, httpAlgo.idlogin, null, mensagem);

                    if (!String.IsNullOrEmpty(mensagem))
                    {
                        queueToStreamer.Enqueue(mensagem);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("despacharEventos(): " + ex.Message, ex);
            }
        }