Exemplo n.º 1
0
        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);
            }
        }