Ir para o conteúdo principal

[Gov.Doc] Análise de erro no painel do Gov.Doc

Data: 06/04/2021

Autores:

 
  1. Alan da Silva Souza
  2. Gabriel Santi Binda
  3. João Vitor Paulino Nobre
  4. Raissa de Sousa Stolduski
  5. Taillon Miguel Gonçalves

1. Objetivo

Análise do erro 504 ao exibir os dados referente a criação de documentos com perfil de administrador.

2. Introdução

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

3. Desenvolvimento

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

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

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:

  • Alteração da consulta para utilizar apenas os campos da entidade Documentos necessários para o processamento das informações do painel;
  • Elaboração de um SPYKE para avaliar os impactos de armazenar o conteúdo do corpo do documento no Storage Amazon da SETIC, onde com o resultado desse estudo será possível mensurar "o que fazer?" e "como fazer?".
4. Conclusão

Após analisar as técnicas descritas acima, é possível que possam ser adaptadas e implementadas de alguma uma forma em código, e também, é possível que surjam ideias e novas técnicas para que o problema possa ser resolvido, esseEsse estudo teve o propósito de levantar possíveis soluções para quea possam ser implementadas em algum momento ao longoresolução do desenvolvimento.problema citado.