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; }
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"); }
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); } }
public string ReceberAcompanhamentoLeilao() { return(MemoriaAcompanhamentoLeilao.ReceberAcompanhamentoLeilao()); }