[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Douglas Desidério Salvador
Criador Douglas Desidério Salvador 21/08/2020

Boa tarde meu amigo, tudo bom ?

Consegue me ajudar em um projeto real que estou desenvolvendo baseado no Larafood?

 

O cenário é o seguinte.

Vou conectar em dois bancos :

01 Banco Firebird tem as categorias que são cadastradas pelos usuários.

02 Banco Mysql precisa capturar essas categorias e fazer um insert baseado na consulta do Firebird.

Obs. é possível também trazer apenas os registros que ainda não foi inserido para não subscrever ou duplicar?

E como posso determinar um gatilho para que ele faça isso de forma automatizada?

 

Desculpa tantas perguntas, mas encontrei em vc Carlos alguém mais profissional e experiente, pois esses fatos é do mundo real.

Grato

Manager Carlos Ferreira 21/08/2020

Olá, Douglas!
Tudo bom, e com você?

Vou precisar de mais alguns detalhes para te ajudar.

1 - Você tem uma API que está conectada ao banco do Firebird que retorna as categorias?

2 - A ideia no caso seria sincronizar os dados do banco local (que está conectado no MySQL) com o banco externo Firebird?

3 - Por que precisa sincronizar estes dados?

Quanto mais detalhes conseguir me passar, melhor eu vou poder te direcionar.

No aguardo amigo.

Carlos Ferreira
Criador Douglas Desidério Salvador 21/08/2020

Bom dia mestre, tudo bem graças a Deus.

Sim estou criando uma API com a tua ajuda.

Essa API conecta o Firebird e disponibiliza os Produtos, Categorias, Status Pedido e Estoque.

O sistem que está no Firebird seria o ERP do sistema.

Essa mesma API recebe alguns POST como cadastra de cliente e Pedido do qual é feito um insert no Mysql. 

O Mysql foi necessário devido a várias restrições impostas no Firebird, como por exemplo criação de novas tabelas ou colunas.

------Fluxo-------

Recebi um pedido no Mysql, e gerei um arquivo txt do pedido e importei para o Firebird.

Preciso buscar no Firebird os Status do pedido conforme ele vai se alterando e informar de alguma forma para quem consome a API

Preciso buscar o saldo em estoque dos produtos do Firebird para quem consome a API.

Pontos.

01 - Não sei ao certo como iniciar esse processo de buscar dados conforme os dados mudam, isso é não sei como buscar de forma automátizada.

02 - Não sei se a estratégia de ter um temporizador seria melhor ou um select que busca esses dados no Firebird e insere no Mysql.

 

Valeu

E desculpa tantas perguntas.

 

 

Douglas Desidério Salvador
Manager Carlos Ferreira 21/08/2020

Você tem um cenário complexo nas mãos.

O ideal seria partir para um microserviço mesmo, onde cada um tem seu próprio banco (não precisa sincronizar os bancos MySQL e Firebird, porque essa sincronização a partir de consultas vai rodar legal por um tempo, só por um tempo).

Ah mas e os dados relacionados? Neste caso as tabelas trabalham apenas com o identificador do registro da outra tabela, teria que rodar se fk.

E quando precisar de dados que estão no outro banco? Neste caso o microserviço comunica com o outro microserviço que está conectado ao outro banco e busca o registro a partir do identificador.

Carlos Ferreira
Criador Douglas Desidério Salvador 21/08/2020

Boa noite professor,

 

Mas em resumo, como o Laravel pode buscar um status em outro banco, poderia me indicar um artigo curso ou meio de pesquisa de alguma funcionalidade do Laravel que busque um dado em um tempo determinado automaticamente?

Só isso já me ajudaria bastante, pois a gente não escolhes desafios.

A principio eu ia fazer em nodejs, mas tive muitos problemas com o drive do firebird, ai tive que partir para o Laravel e acabei gostando do framework.

 

Agradeço demais sua disponibilidade.

E se cuida

Douglas Desidério Salvador
Manager Carlos Ferreira 21/08/2020

O Laravel é incrível mesmo.

Uma alternativa é trabalhar com real-time na API, para lançar eventos sempre que atualizar o banco.

Uma alternativa para executar uma tarefa de tempos em tempos (rodar o serviço que vai consular a API e buscar as atualizações) é usando Task Scheduling do Laravel (https://laravel.com/docs/7.x/scheduling)

Ainda não tenho cursos sobre o assunto, mas é algo bem documentado.

Qualquer dúvida amigo, me retorne. Tá bom? :-)

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!