Пример #1
0
        protected void EnviaAcompanhamentoLeilao(object state)
        {
            // Evita que mais que uma instância seja executada pelo timer
            if (enviandoLeilao)
            {
                return;
            }

            enviandoLeilao = true;
            MemoriaAcompanhamentoLeilao.EnviaAcompanhamentoLeilaoStreamer(filaLeilaoParaStreamer, FrequenciaEnviaLeilao);
            enviandoLeilao = false;
        }
Пример #2
0
        protected virtual void TrataAcompanhamentoLeilao()
        {
            bool bWait = false;

            logger.Info("Iniciando thread para tratar mensagens de Acompanhamento de Leilao");
            while (bKeepRunning)
            {
                try
                {
                    List <NegocioInfo> filaTemp = new List <NegocioInfo>();

                    lock (filaAcompanhamentoLeilao)
                    {
                        filaTemp = filaAcompanhamentoLeilao.ToList();
                        filaAcompanhamentoLeilao.Clear();
                    }

                    foreach (NegocioInfo negocio in filaTemp)
                    {
                        MemoriaAcompanhamentoLeilao.AcompanhamentoLeilao(negocio, filaLeilaoParaStreamer);
                    }

                    lock (filaAcompanhamentoLeilao)
                    {
                        if (filaAcompanhamentoLeilao.Count == 0)
                        {
                            bWait = true;
                        }
                        else
                        {
                            bWait = false;
                        }
                    }

                    if (bWait)
                    {
                        Thread.Sleep(250);
                    }

                    Thread.Sleep(100);
                }
                catch (Exception ex)
                {
                    logger.Fatal("TrataAcompanhamentoLeilao(): " + ex.Message, ex);
                    Thread.Sleep(1000);
                }
            }

            logger.Info("Finalizando thread para tratar mensagens de Acompanhamento de Leilao");
        }
Пример #3
0
        void socketStreamerServer_OnRequestReceived(object sender, MessageEventArgs args)
        {
            try
            {
                DadosRequisicaoInfo req = JsonConvert.DeserializeObject <DadosRequisicaoInfo>(args.Message);

                if (req.tipo.Equals(TIPO_REQUISICAO_NEGOCIOS_DESTAQUE))
                {
                    logger.Info("Enviando snapshot de Negocios em Destaque para cliente[" + args.ClientNumber.ToString() + "]");
                    MemoriaNegociosDestaque.ListaRanking(filaDestaquesParaStreamer, args.ClientSocket);
                }
                else if (req.tipo.Equals(TIPO_REQUISICAO_ACOMPANHAMENTO_LEILAO))
                {
                    logger.Info("Enviando snapshot de Acompanhamento de Leilao para cliente[" + args.ClientNumber.ToString() + "]");
                    MemoriaAcompanhamentoLeilao.MontagemAcompanhamentoLeilaoStreamer(args.ClientSocket);
                    MemoriaAcompanhamentoLeilao.EnviaAcompanhamentoLeilaoStreamer(filaLeilaoParaStreamer, FrequenciaEnviaLeilao);
                }
                else if (req.tipo.Equals(TIPO_REQUISICAO_RESUMO_CORRETORAS))
                {
                    if (!((IList <string>)MemoriaResumoCorretoras.SEGMENTOS_MERCADO).Contains(req.instrumento))
                    {
                        if (req.acao.Equals(MDS_ACAO_ASSINAR))
                        {
                            MemoriaResumoCorretoras.AssinarRankingPorInstrumento(req.instrumento);
                            MemoriaResumoCorretoras.ListaRankingPorInstrumentoOuCorretora(filaResumoParaStreamer, args.ClientSocket, req.instrumento);
                        }
                        else
                        {
                            MemoriaResumoCorretoras.DesassinarRankingPorInstrumento(req.instrumento);
                        }
                    }
                    else
                    {
                        logger.Info("Enviando snapshot de Resumo de Corretoras para cliente[" + args.ClientNumber.ToString() + "]");
                        MemoriaResumoCorretoras.ListaRanking(filaResumoParaStreamer, args.ClientSocket);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("socketStreamerServer_OnRequestReceived(): " + ex.Message, ex);
            }
        }
Пример #4
0
 public string ReceberAcompanhamentoLeilao()
 {
     return(MemoriaAcompanhamentoLeilao.ReceberAcompanhamentoLeilao());
 }