Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        /// <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);
            }
        }