[Gov.Doc] Análise de erro no painel do Gov.Doc
Análise do erro 504 ao exibir os dados referente a criação de documentos com perfil de administrador. O sistema Gov.Doc, sistema de edição de documentos oficiais, possui um painel para exibir alguns números referentes a criação de documentos para usuários com perfil de administrador, contudo na tentativa de acessar tais informações é apresentado o erro 504 Gateway Time-out. Em avaliação ao código desenvolvido se percebeu numa consulta(imagem 1) ao banco de dados que está apresentando uma demora, devido a estar retornando todos os campos da entidade Documentos para assim gerar os quantitativos do painel. Imagem 1 3.1 Solução proposta Diante da necessidade de prover um acesso mais rápido as informações do painel, o time Tambaqui propõem as seguintes mudanças: Esse estudo teve o propósito de levantar possíveis soluções para a resolução do problema citado.Data:
Data de elaboração
06/04/21
Autores:
Responsável
Equipe do estudo
Tambaqui
Alvo
Gov.Doc
Origem
Objetivo
ex: diminuir tempo de atendimento adequando o padrão para 12 horas (dois dias de expediente de trabalho). pode-se utilizar objetivos smart
Documentação correlata (opcional)
Observações
1. Objetivo
2. Introdução
3. Desenvolvimento
public async Task<IActionResult> Painel()
{
var documentos = await db.Documentos.ToListAsync();
var documentosPorSistema = documentos.Select(documento => new DocumentoPorSistemaDto(documento.SistemaOrigemId)).ToList();
foreach (var documento in documentosPorSistema)
{
var sistema = await apiDoSauron.BuscarSistemaDeOrigem(documento.ClientId);
documento.NomeDoSistema = sistema.Description;
}
var totalDeDocumentosPorTipo = documentos.GroupBy(x => x.TipoDeDocumento).OrderBy(tipoDeDocumento => tipoDeDocumento.Key);
var documentosGeradosPorSistema = documentosPorSistema.GroupBy(x => x.NomeDoSistema).OrderBy(nomeDoSistema => nomeDoSistema.Key);
var painelViewModel = new PainelViewModel(totalDeDocumentosPorTipo, documentosGeradosPorSistema);
ViewData["TotalDeDocumentosGerados"] = documentos.Count;
return View(painelViewModel);
}
4. Conclusão