01. DADOS GERAIS
Produto: | TOTVS Transmite |
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | BackOffice |
Módulo: | TOTVS Transmite |
Função: | Não Há |
País: | Brasil |
Ticket: | Não Há |
Requisito/Story/Issue (informe o requisito relacionado) : | DSERTSS3-3706 |
02. SITUAÇÃO/REQUISITO
Seguindo o trabalho realizado em algumas das API's, o objetivo dessa demanda é refatorar rotinas no serviço transmit-cte-worker relacionadas com o processo de sincronismo, com o intuito de evitar falhas na comunicação com a base de dados e garantir o registro dos CT-e sincronizados.
Essa tarefa tem como escopo principal o serviço transmit-cte-worker, onde os pontos a guiar o desenvolvimento serão:
- Manter a injeção de dependência da conexão do Mongo DB como Singleton;
- Alterar a Injeção de dependência dos repositórios que utilizam a conexão com o Mongo DB, para o modelo Scoped;
- Garantir a abertura e fechamento das sessões com o Mongo DB;
- Garantir a limpeza de memória de referências à objetos não mais utilizados pelas conexões;
03. SOLUÇÃO
A refatoração principal ocorreu nos projetos transmit-framework e transmit-cte-worker, mas também abrangeu outros serviços relacionados. Os seguintes ajustes foram abordados nessa tarefa:
- Implementação do novo modelo de repositório denominado BaseRepository, que já havia sido implementado nas API's portal-api e cte-api;
- Implementação de interface e classe no projeto transmit-framework para tratar o conceito de multitenancy nos serviços;
- Na injeção dos repositórios, a aplicação passou a instanciar a classe ContextMultitenancy respeitando o Tenant recebido na requisição via mensageria ou sessão TNF das chamadas, para devido posicionamento na base de dados do cliente;
- Criação de novos modelos CertsRepository e NotificacaoRepository que herdam do BaseRepository, para utilização nos fluxos que estão no escopo desta tarefa;
- Nova injeção de dependência, para as classes acima, definindo a modalidade para Scoped, que passará a criar um objeto em cada requisição recebida no serviço, já realizando o posicionamento do repositório no banco de dados correspondente;
- Preenchimento de propriedade durante a injeção de dependência do serviço de mensageria, para que seja possível identificar o nome do Pod no painel de conexões do Message Broker, facilitando o troubleshooting.
04. DEMAIS INFORMAÇÕES
Não Há.
05. ASSUNTOS RELACIONADOS
Não Há.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas