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); } }
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); }