Webhook ou consulta periódica: como um sistema fica a saber que algo mudou noutro

Se o outro sistema consegue avisá-lo, use um webhook: chega na hora e não gasta pedidos à toa. Se não consegue, ou se não pode arriscar perder um aviso, faça uma consulta periódica (polling). O mais robusto junta as duas. É a pergunta por trás de «como sei que o cliente pagou», «como recebo as mensagens» ou «como sei que a encomenda mudou».

As duas ideias

Na consulta periódica, o seu sistema pergunta de tempos a tempos «há novidades?». Quem pergunta é você, ao ritmo que escolher. No webhook, é o outro sistema que o chama: quando algo acontece, faz um pedido HTTPS a um endereço seu e entrega os dados. Quem avisa é ele, no instante do acontecimento.

Lado a lado

Critério Consulta periódica Webhook
Rapidez Atrasa até ao próximo intervalo. Quase imediato.
Desperdício Muitos pedidos que respondem «nada de novo». Só há pedido quando acontece algo.
O que precisa do seu lado Uma tarefa agendada. Não exige endereço público. Um endereço público em HTTPS que esteja sempre a responder.
Se o seu servidor estiver em baixo Apanha o que perdeu na consulta seguinte. Pode perder o aviso. Os serviços costumam tentar de novo, mas por tempo limitado.
Segurança Controla a ligação que faz. Tem de confirmar que o aviso veio mesmo de quem diz.
Simplicidade Muito simples. Um pouco mais de cuidado.

Quando usar cada um

1 Use webhook para pagamentos, mensagens recebidas e encomendas, onde esperar minutos custa. Veja webhooks da Meta: verificar e receber.
2 Use consulta periódica quando o outro lado não tem webhooks, quando só quer um relatório de hora a hora, ou quando não tem um endereço público para receber. É o que faz uma tarefa agendada. Veja tarefas agendadas (cron).
3 Junte as duas quando falhar um aviso é caro: o webhook trata do imediato e uma consulta lenta, de hora a hora, apanha o que escapou.
4 No n8n, o gatilho Webhook corresponde ao primeiro caso e o Schedule Trigger ao segundo. Veja o gatilho Schedule do n8n ou uma tarefa cron.

O que um webhook bem feito faz

1 Responde depressa com um código de sucesso, e só depois trata do trabalho pesado.
2 Confirma a origem do pedido, normalmente com uma assinatura. Veja receber um webhook em PHP e verificar a assinatura.
3 Aguenta o mesmo aviso duas vezes: os serviços podem reenviar, e não deve registar o mesmo pagamento em duplicado.
4 Regista o que recebe, para saber o que se passou quando algo falha.
No n8n, o webhook de teste e o de produção são endereços diferentes. O de teste só responde enquanto está à escuta no editor. O de produção só responde com o fluxo activo. Pôr o de teste num serviço externo é a causa mais comum de «o webhook não dispara».
Para os avisos não se perderem, guarde-os antes de os processar. Um aviso que chega e falha a meio do tratamento pode ser retomado se estiver guardado; se não, perdeu-se.

Está a ligar dois sistemas e não sabe qual das duas vias usar? Conte-nos o que querem dizer um ao outro.

Abrir um pedido de suporte

VEJA TAMBÉM

Receber um webhook em PHP e verificar a assinatura

O gatilho Schedule do n8n ou uma tarefa cron: qual usar

Tarefas agendadas (cron): para que servem e como criar uma

Servidor VPS

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde $6.60/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?