integrador-2
v2.8.0
Published
Script que gera documentos json com informações atualizadas do Vista para atualização do Solr
Downloads
3
Readme
Integrador 2.0
O Integrador 2.0 foi desenvolvido para fazer a migração dos dados de imóveis que estão no Vista para o Solr (base de dados que o site consulta). Existem dois scripts, um para cada core dentro do solr, um para cada negócio: vendas e aluguéis.
Funcionamento geral
Apesar dos scripts terem algumas regras de negócio específicas eles seguem um funcionamento básico:
- Consulta lista de imóveis ativos no site (Solr)
- Consulta a dados do Google Analytics
- Consulta lista de imóveis no Vista (paginação com 50 itens por página)
- Para cada imóvel, verifica se há necessidade de atualização (data de atualização) ou exclusão
- se o imóvel deve ser atualizado, verifica se ele respeita as regras
- Se o imóvel deve ser excluído, registra para ação posterior
- Cria o comando de atualização do Solr
- Ao final de cada página do Vista, enviamos uma atualização dos imóveis aptos daquela página para o Solr
- Quando a atualização de imóveis termina enviamos um código de exclusão dos imóveis excluídos
Paramêtros
Ambos os scripts podem receber parâmetros:
- página: inteiro que determina página de inicio no Vista
- validação de data: (true | false) booleano que determina se vamos ignorar a data de atualização e forçar a atualização de todos imóveis
- ambiente: (dev | hml | prd) string que indica ambiente que está rodando
- código: código de imóvel para rodar a integração de um imóvel apenas
Build
O projeto está configurado com um pipeline com dois jobs: Build e Push Latest.
O primeiro job faz o build da imagem docker e envia para o repositório com tag igual ao SHA do commit.
O segundo job, que só roda para branch master, adiciona a tag latest ao último build e envia ao repositório.
Execução e Acompanhamento
Foi criado nos clusters Kubernetes de desenvolvimento, homologação e produção um namespace específico para os serviços de integração: integrador. Para produção, nesse namespace, foram criados quatro cronjobs:
- Integração incremental de Aluguéis das 8h às 20h, a cada 4h.
- Integração total de Aluguéis toda às 00:00.
- Integração incremental de Vendas das 8h30 às 20h30, a cada 4h.
- Integração total de Vendas toda às 00:30.
Para verificar statuso dos cronjobs rodar o comando:
kubectl get cronjobs -n integrador
Para ver os jobs:
kubectl get jobs -n integrador
Para ver os pods:
kubectl get pods -n integrador
Para ver o log de um pod:
kubectl logs --follow <pod-name> -n integrador
Para executar manualmente o integrador (de dentro do cluster):
no cluster como um job
kubectl create job --from=cronjob/<cronjob-name> <job-name> -n integrador
direto no docker
docker pull 177.47.20.89:5000/integrador-<ambiente>:latest
docker run -d 177.47.20.89:5000/integrador-<ambiente>:latest node <alugueis|vendas>.js <pagina> <ignoraData> <ambiente> <codigo> > <arquivo>.log