/// <summary> /// Thread de processamento da fila de status de conexao com as bolsas /// </summary> private void StatusProcessor() { try { while (_bKeepRunning) { TimeSpan lastInterval = new TimeSpan(DateTime.Now.Ticks - _lastStatus.Ticks); if (lastInterval.TotalSeconds > 60) { UnsubscribeRoteador(); SubscribeRoteador(); } lock (queueStatus) { while (queueStatus.Count > 0) { StatusConexaoBolsaStreamer status = queueStatus.Dequeue(); sckServer.SendToAll(status.ToMsg()); } } Thread.Sleep(100); } } catch (Exception ex) { logger.Error("StatusProcessor: " + ex.Message, ex); } }
/// <summary> /// EventHandler de status de conexoes com as bolsas /// </summary> /// <param name="status"></param> public void StatusConexaoAlterada(RoteadorOrdens.Lib.Dados.StatusConexaoBolsaInfo status) { try { _lastStatus = DateTime.Now; StatusConexaoBolsaStreamer info = new StatusConexaoBolsaStreamer(status); lock (queueStatus) { queueStatus.Enqueue(info); } } catch (Exception ex) { logger.Error("StatusConexaoAlterada():" + ex.Message, ex); } }