Quando un messaggio viene consegnato a un sottoscrittore di tipo pull, il sottoscrittore deve elaborare e confermare (confermare) il messaggio entro la scadenza di conferma. In caso contrario, l'abbonato deve estendere la scadenza con una chiamata per modificare il riconoscimento la scadenza del periodo di conservazione.
Le librerie client di alto livello di Pub/Sub fornire la gestione del leasing come funzionalità che estende automaticamente la scadenza di un messaggio che non è stato ancora confermato. Per impostazione predefinita, le biblioteche possono estendere la scadenza a un'ora rilasciando periodicamente modifyAckDeadline richieste.Le librerie client di alto livello per Python, Go, Java e .Net utilizzano 99° percentile di ritardo di conferma per determinare la lunghezza di .
La gestione del leasing ti consente di avere un controllo più granulare sulla conferma per i messaggi rispetto alla configurazione della proprietà a livello di sottoscrizione. Se utilizzi solo la scadenza di conferma a livello di abbonamento, hai per bilanciare il compromesso tra un valore basso e uno alto. Un valore basso aumenta la probabilità di duplicati e un valore elevato ritarda la restituzione dei messaggi non riusciti. Determinare il valore giusto può essere difficile, soprattutto quando il tempo di elaborazione previsto per i diversi messaggi varia notevolmente.
Per ulteriori informazioni sulle proprietà di una sottoscrizione, inclusa la scadenza di conferma, Proprietà degli abbonamenti.
Configurazione della gestione del leasing
Puoi configurare le seguenti proprietà nelle librerie client di alto livello per controllare la gestione del leasing.
Periodo di estensione del riconoscimento massimo. L'intervallo di tempo massimo che puoi estendere la scadenza di conferma di un messaggio utilizzando Richiesta di
modify acknowledgment deadline
. Questa proprietà ti consente di determinare vuoi che i client sottoscrittori elaborino i messaggi.Durata massima per ogni estensione di conferma. Il periodo di tempo massimo entro il quale estendere la scadenza per l'acknowledgment per ciascuna delle richieste
modify acknowledgment deadline
. Questa proprietà consente di definire il tempo impiegato da Pub/Sub per riconsegnare un messaggio. La nuova pubblicazione avviene quando il primo sottoscrittore che elabora il messaggio si arresta in modo anomalo o non è integro e non è più in grado di inviare la richiestamodify acknowledgment deadline
.Durata minima per ogni estensione di conferma. L'importo minimo di tempo entro il quale estendere la scadenza di conferma per ciascuna delle
modify acknowledgment deadline
richieste. Questa proprietà consente di specificare il tempo minimo che deve trascorrere prima che venga eseguita la restituzione di un messaggio.
Non è garantito che i termini per la conferma vengano rispettati, a meno che non vengano attivi consegna "exactly-once".
Gestione manuale delle scadenze di ack
Per evitare la scadenza e la restituzione dei messaggi quando utilizzi il pull unario o le librerie client di basso livello, utilizza la richiesta modify acknowledgment deadline
per estendere le scadenze di conferma. Le eccezioni sono Go e C++
Librerie client di alto livello che forniscono la gestione del leasing quando si utilizza un
eseguire il pull. Consulta i seguenti esempi per il pull unario con la gestione dei leasing:
C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub C#.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java in Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Pub/Sub.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella Guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub per Node.js.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Pub/Sub per Python.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby riportate nella guida rapida all'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby Pub/Sub.
Passaggi successivi
Scopri le altre opzioni di pubblicazione che puoi configurare per un abbonamento:
Gestire gli errori relativi ai messaggi con il criterio di ripetizione dell'abbonamento
Inoltrare i messaggi non recapitati a un argomento messaggi non recapitabili
Riprodurre i messaggi per i quali è stato ricevuto l'acknowledgement o eliminare i messaggi
Elaborare più messaggi con il controllo della contemporaneità