Skip to main content
Un endpoint di polling fornisce lo stesso flusso di eventi di un endpoint webhook, ma li recuperi tu con una richiesta GET invece che storekit li invii a un URL pubblico. Ogni polling restituisce un batch di messaggi nell’ordine in cui sono stati ricevuti; elabori il batch, confermi il punto in cui sei arrivato e il polling successivo continua da lì.

Quando usare il polling

Il polling è adatto ai casi in cui un endpoint HTTPS pubblico è scomodo o non necessario:
  • Sviluppo locale: esegui il polling dal tuo laptop senza ngrok o un tunnel
  • Reti private: il servizio consumatore non deve essere raggiungibile da internet
  • Elaborazione in batch: vuoi tutti gli eventi della giornata in una volta sola, ad esempio per archiviare gli ordini per motivi di conformità o per riconciliare i pagamenti durante la notte
  • Sistemi che non possono ricevere HTTP: un cron job, una pipeline di dati o uno script
Se hai bisogno degli eventi entro pochi secondi dal loro verificarsi, usa un normale endpoint webhook. Gli endpoint di polling e webhook possono coesistere sullo stesso account, filtrati sugli stessi tipi di evento o su tipi diversi.

Creare un endpoint di polling

  1. Apri la pagina dei webhook (Settings → Developers → Manage Webhooks)
  2. Nel portale webhook integrato, aggiungi un nuovo endpoint e scegli il tipo endpoint di polling
  3. Seleziona i tipi di evento che vuoi ricevere
  4. Salva l’endpoint
Il portale mostra quindi due elementi che ti servono per ogni richiesta:
La API key concede l’accesso in lettura a ogni evento a cui l’endpoint è sottoscritto, inclusi nomi dei clienti e dettagli di contatto nei payload degli ordini. Trattala come qualsiasi altro segreto di produzione.

Polling degli eventi

Invia una richiesta GET all’URL di polling con la tua API key:
La risposta è un batch di messaggi. Il payload di ogni messaggio è esattamente il corpo JSON che riceverebbe un endpoint webhook (l’envelope { event, data } del formato del payload), incapsulato con metadati del messaggio e un offset:
La verifica della firma non si applica: la richiesta è autenticata dalla tua API key anziché da una consegna firmata.

Confermare la tua posizione

Dopo aver elaborato un batch, conferma l’offset dell’ultimo messaggio gestito:
Finché non confermi, gli stessi messaggi vengono riconsegnati una volta scaduto il loro lease. Questo è voluto: se il tuo worker va in crash a metà batch, nulla va perso. Significa anche che il tuo handler deve essere idempotente, vedi Idempotenza.

ID dei consumer

Il {consumer_id} nell’URL è una stringa che scegli tu. Ogni ID consumer tiene traccia della propria posizione nello stream, quindi due consumer che leggono lo stesso endpoint ricevono entrambi ogni evento.
  • Usa un ID stabile per worker (kitchen-archive, finance-reconciliation) in modo che il progresso sopravviva ai riavvii
  • Non condividere mai un singolo ID consumer tra client eseguiti in parallelo. Due processi che effettuano polling con lo stesso consumer si disallineano nello stream e l’API restituisce errori
Lo stream inizia quando viene creato l’endpoint di polling. Gli eventi inviati prima di quel momento non sono inclusi.

Un tipico loop di polling

Esegui pollOnce() con la pianificazione più adatta: ogni pochi secondi per un funzionamento quasi in tempo reale, oppure una volta a notte per un’esportazione giornaliera.

Inoltro a un servizio privato

Se preferisci mantenere la consegna HTTP in stile webhook ma il tuo servizio si trova su una rete privata, esegui Svix Bridge all’interno di quella rete. Effettua il polling dell’endpoint e inoltra ciascun messaggio a un URL interno, RabbitMQ o Kafka, con nuovi tentativi quando una delle due parti è temporaneamente non raggiungibile. La pagina dell’endpoint di polling nel portale integrato include una configurazione iniziale di Bridge con l’app ID e l’endpoint ID già compilati.

Correlati

Configurazione dei webhook

Consegna push a un endpoint HTTPS pubblico

Idempotenza

Gestisci lo stesso evento più volte in modo sicuro

Eventi webhook

Tutti i tipi di evento a cui puoi sottoscriverti

Test dei webhook

Ispeziona le consegne e invia eventi di test