Пример #1
0
        public FeedImport.Business.GenericProcess CreateImport(Tebaldi.MarketData.Models.State.ProcessQueueState queue)
        {
            FeedImport.Business.GenericProcess processo = null;

            switch (queue.Process.Feed.Type)
            {
            case Tebaldi.MarketData.Models.State.FeedTypeEnum.BDI:
                processo = new BdiImportProcess(queue);
                break;

            case Tebaldi.MarketData.Models.State.FeedTypeEnum.Quandl:
                processo = new QuandlImportProcess(queue);
                break;

            default:
                Console.WriteLine("Default case");
                break;
            }

            return(processo);
        }
Пример #2
0
        static void Main(string[] args)
        {
            logger.Info("Inicio de processo");

            // Inicializo o handler dos processos
            Tebaldi.FeedImport.Business.QueueHandler handler = new Business.QueueHandler();

            // busco lista de processos em fila
            List <Tebaldi.MarketData.Models.State.ProcessQueueState> lstQueue    = handler.GetProcessQueue();
            List <Tebaldi.MarketData.Models.State.ProcessQueueState> lstNewQueue = new List <MarketData.Models.State.ProcessQueueState>();

            foreach (Tebaldi.MarketData.Models.State.ProcessQueueState item in lstQueue)
            {
                logger.Info("Executando Processo: " + item.Process.Name + " (id: " + item.Process.Id.ToString() + ") Date: " + item.DataReferencia.ToString("s"));

                item.DataExecucao = DateTime.Now;
                item.Executado    = true;
                item.Success      = false;

                if (item.Process.Active)
                {
                    FeedImport.Business.GenericProcess impPorcess = handler.CreateImport(item);

                    try
                    {
                        // Carego as configuracoes de importacao
                        impPorcess.LoadConfig();

                        // executo o feed de importacao
                        impPorcess.ExecuteFeed();

                        // executo filtros de importacao
                        impPorcess.ExecuteFilter();

                        impPorcess.ExecuteTransformations();

                        Business.CotacaoDataHandler.WriteDataToDatabase(impPorcess.GetData());

                        item.Success = true;

                        if (item.Process.AutoQueue)
                        {
                            lstNewQueue.Add(handler.ReQueue(item));
                        }
                    }
                    catch (Exceptions.DownloadError404Exception ex)
                    {
                        logger.Warn(ex.Message);
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex.Message);
                    }
                }
            }

            lstQueue.AddRange(lstNewQueue);

            handler.Save(lstQueue);

            logger.Info("Fim de processo");
            log4net.LogManager.Flush(60000);
        }