Ejemplo n.º 1
0
        public void OnStartConsole(string[] args)
        {
            try
            {
                _config = _configurationService.BuscarConfiguracaoServico();
                _configurationService.ValidarArquivoConfiguracao(_config);

                _log = new LogService(_config.Log);

                _log.Information("............................ Iniciando log Serviço ............................");
                _log.Information(" Modo: Console");
                _log.Information($" Versão Service: {ControleVersaoConstantes.VersaoService}");
                _log.Information("...............................................................................");

                _intervalo = _config.IntervaloSegundos;

                foreach (var conexao in _config.Conexoes)
                {
                    ConexaoService conexaoService = new ConexaoService(_log, conexao);
                    conexaoService.SincronizarTabelas();
                }
            }
            catch (LogErrorException logEx)
            {
                throw;
            }
            catch (Exception ex)
            {
                _log.Error($"Erro na inicialização do serviço", ex);
            }
        }
Ejemplo n.º 2
0
        protected override void OnStart(string[] args)
        {
            base.OnStart(args);

            try
            {
                _config = _configurationService.BuscarConfiguracaoServico();
                _configurationService.ValidarArquivoConfiguracao(_config);

                _log = new LogService(_config.Log);

                _log.Information("............................ Iniciando log Serviço ............................");
                _log.Information(" Modo: Service");
                _log.Information($" Versão Service: {ControleVersaoConstantes.VersaoService}");
                _log.Information("...............................................................................");

                _intervalo = _config.IntervaloSegundos;

                _log.Information("Configurando estrutura agendamento");

                _scheduler = StdSchedulerFactory.GetDefaultScheduler().GetAwaiter().GetResult();

                foreach (var conexao in _config.Conexoes)
                {
                    JobDataMap map = new JobDataMap();
                    map.Add("conexao", conexao);
                    map.Add("nomeConexao", conexao.NomeConexao);
                    map.Add("log", _log);

                    IJobDetail jobConexao = JobBuilder.Create <ConexaoService>()
                                            .WithIdentity(conexao.NomeConexao, "Sincro")
                                            .SetJobData(map)
                                            .Build();


                    ITrigger triggerConexao = TriggerBuilder.Create()
                                              .WithIdentity("trigger" + conexao.NomeConexao, "Sincro")
                                              .StartNow()
                                              .WithSimpleSchedule(x => x
                                                                  .WithIntervalInSeconds(_intervalo)
                                                                  .RepeatForever())
                                              .Build();

                    //Agendar
                    _scheduler.ScheduleJob(jobConexao, triggerConexao);
                }

                _log.Information("Iniciando agendamentos");
                _scheduler.Start();
            }
            catch (LogErrorException)
            {
                throw;
            }
            catch (Exception ex)
            {
                _log?.Error($"Erro na inicialização do serviço", ex);
            }
        }
        public void ValidarArquivoConfiguracao(ConfiguracaoSincronizadorTabela config)
        {
            if (config.IntervaloSegundos <= 0)
            {
                throw new ApplicationException("Configuração inválida, intervalo em segundos inválido.");
            }

            if (config.Conexoes == null || !config.Conexoes.Any())
            {
                throw new ApplicationException("Configuração inválida, conexões não encontradas.");
            }

            if (config.Log == null)
            {
                throw new LogErrorException("Configuração inválida, Dados de log não encontrados.");
            }

            ValidarConexoes(config.Conexoes);
            ValidarLog(config.Log);
        }
        public ConfiguracaoSincronizadorTabela BuscarConfiguracaoServico()
        {
            ConfiguracaoSincronizadorTabela configBase = _config.Get <ConfiguracaoSincronizadorTabela>();

            return(configBase);
        }