protected bool ExecutarProcessoFila <T>(Processo processo, Func <T> actionProcesso) { try { _rabbitMQService.InserirEventoLogProcessessamentoIniciado(processo); actionProcesso.Invoke(); _rabbitMQService.InserirEventoLogProcessessamentoConcluido(processo); return(true); } catch (Exception ex) { _rabbitMQService.InserirEventoLogProcessessamentoComErro(processo, ex.Message); if (processo.NroTentativa < processo.Configuracao.NroMaximoTentativas) { processo.NroTentativa++; _rabbitMQService.InserirProcessoFilaReprocessamento(processo); } return(false); } }