Executando verificação de segurança...
1

[AJUDA] - Observador de alteração de dados

Boa tarde pessoa, como estão?

Estou precisando implementar um "observador" em node. Ele deve ficar observando uma linha de uma tabela X em SQl Server e, quando essa linha sofrer alteração, irá disparar uma ação. Vou tentar ilustrar:

Uma tabela, por exemplo, contém as seguintes colunas: id, nome, status;

É iserido nessa tabela: id: 1, nome: 'produto X', status: 30;

Existe um processo de uma API externa que modifica esse status de 30 para 40, ou seja, realiza um update,

Após ocorrer esse update e o status receber 40, a minha API em node precisará realizar uma ação, no caso, a criação de um log, por exemplo, ou, uma notificação de email...

Não consigo fazer isso na API externa, não tenho acesso/liberdade para alterar o código fonte.

Seria como se fosse uma fila, mas, nesse caso, não posso implementar um rabbitmq ou kafka.

Estou usando express e sequelize.

Sei que o sequelize possui métodos addHook, mas, pelo que entendi, ele fica observando manipulação da model e dentro da api.

Há alguma forma de se fazer com node e sequelize?

Carregando publicação patrocinada...
2
1
1

O Postgress tem NOTIFY e LISTEN, além do trigger!
Usar NOTIFY e LISTEN vc faz no conector em JS mesmo!
Não sei como funciona no SQLServer mas deve ser algo no mesmo estilo.
Eventos quem sabe!

Não acho que o sequelize tenha isso!
Você teria que usar outro conector

Quem sabe esta lib
https://tediousjs.github.io/node-mssql/

1

Agradeço pelo retorno Uriel. Num primeiro momento, não encontrei nada no sql além do trigger. E, não posso fazer implementação no banco, precisa ser feito no código. Vou tentar encontrar alguma implementação do Listen e Notify do sql...

1
1

Essa api é chamada de robo, rs, ela fica esperando uma alteração no banco de dados, semelhante ao que preciso fazer, quando o status do banco muda, esse robô cria um zip com vários pdfs dentro e disponibiliza numa pasta compartilhada e seta o status para 40. Detalhe que, esse robô está em C#. Na api, ao qual estou atuando, preciso ficar observando a alteração desse status, assim que for 40, disparar um alerta de notificação, ao qual vai informar que o zip está pronto.

1

Essa api é chamada de robo, rs, ela fica esperando uma alteração no banco de dados,

Como ele sabe que teve alterações no banco?

Pela implementação dele vc pode fazer a sua?

1

Esse é um dos pontos, é api de terceiro, não temos acesso ao código fonte. Segundo o que nos foi passado, é configurado pela empresa responsável.

1

Se essa API usa um trigger o que duvido.
Ela deve estar usando eventos. E pra isso é permissão no banco!

Você esta de mãos atadas! Eu meteria um cron(pooling) e já era!
De tempos em tempos e verificaria!

1
1
0

Se você tiver acesso ao banco, faça um trigger para alimentar uma tabela que você precisa observar na aplicação node e sempre esvaziar ela.

1