Saat pesan dikirim ke pull subscriber, pelanggan harus memproses dan mengonfirmasi (ack) pesan tersebut dalam batas waktu konfirmasi. Selain itu, pelanggan harus memperpanjang batas waktu dengan panggilan untuk mengubah batas waktu konfirmasi.
Library klien tingkat tinggi Pub/Sub menyediakan pengelolaan lease sebagai fitur yang otomatis memperpanjang batas waktu pesan yang belum dikonfirmasi. Secara default, library klien dapat memperpanjang batas waktu hingga satu jam dengan mengeluarkan permintaan modifyAckDeadline secara berkala.Library klien tingkat tinggi untuk Python, Go, Java, dan .Net menggunakan persentil ke-99 penundaan konfirmasi untuk menentukan durasi setiap ekstensi.
Pengelolaan sewa memungkinkan Anda memiliki kontrol yang lebih terperinci atas batas waktu konfirmasi untuk pesan dibandingkan dengan mengonfigurasi properti tingkat langganan. Jika hanya menggunakan batas waktu konfirmasi tingkat langganan, Anda harus menyeimbangkan kompromi antara nilai rendah dan nilai tinggi. Nilai yang rendah meningkatkan kemungkinan terjadinya duplikat dan nilai yang tinggi menunda pengiriman ulang pesan yang gagal. Menentukan nilai yang tepat bisa menjadi hal yang sulit, terutama ketika waktu pemrosesan yang diharapkan untuk pesan yang berbeda sangat bervariasi.
Untuk informasi selengkapnya tentang properti langganan, termasuk batas waktu konfirmasi, lihat Properti langganan.
Konfigurasi pengelolaan lease
Anda dapat mengonfigurasi properti berikut di library klien tingkat tinggi untuk mengontrol pengelolaan lease.
Periode perpanjangan konfirmasi maksimum. Jumlah waktu maksimum yang dapat Anda gunakan untuk memperpanjang batas waktu konfirmasi pesan menggunakan permintaan
modify acknowledgment deadline
. Properti ini memungkinkan Anda menentukan berapa lama Anda ingin klien pelanggan memproses pesan.Durasi maksimum untuk setiap ekstensi konfirmasi. Jumlah waktu maksimum untuk memperpanjang batas waktu konfirmasi untuk setiap permintaan
modify acknowledgment deadline
. Properti ini memungkinkan Anda menentukan jumlah waktu yang diperlukan Pub/Sub untuk mengirim ulang pesan. Pengiriman ulang terjadi saat pelanggan pertama yang memproses pesan mengalami error atau menjadi tidak responsif dan tidak dapat lagi mengirim permintaanmodify acknowledgment deadline
.Durasi minimum untuk setiap ekstensi konfirmasi. Jumlah waktu minimum untuk memperpanjang batas waktu konfirmasi untuk setiap permintaan
modify acknowledgment deadline
. Properti ini memungkinkan Anda menentukan jumlah waktu minimum yang harus berlalu sebelum pengiriman ulang pesan terjadi.
Batas waktu konfirmasi tidak dijamin akan dipatuhi kecuali Anda mengaktifkan pengiriman tepat satu kali.
Mengelola batas waktu konfirmasi secara manual
Untuk menghindari akhir masa berlaku dan pengiriman ulang pesan saat menggunakan unary pull atau library klien level rendah, gunakan permintaan modify acknowledgment deadline
untuk memperpanjang batas waktu konfirmasi. Pengecualiannya adalah library klien tingkat tinggi Go dan C++ yang menyediakan pengelolaan lease saat menggunakan unary pull. Lihat contoh berikut untuk unary pull dengan lease management:
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan Memulai: Menggunakan Library Klien. Untuk informasi selengkapnya, lihat dokumentasi referensi Pub/Sub C# API.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan Memulai: Menggunakan Library Klien. Untuk informasi selengkapnya, lihat dokumentasi referensi API Pub/Sub Java.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan Memulai: Menggunakan Library Klien. Untuk informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Node.js API.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Python API.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Ruby API.
Langkah selanjutnya
Baca opsi pengiriman lainnya yang dapat Anda konfigurasi untuk langganan:
Menangani kegagalan pesan dengan kebijakan percobaan ulang langganan
Meneruskan pesan yang belum terkirim ke topik yang dihentikan pengirimannya
Memutar ulang pesan yang sebelumnya dikonfirmasi atau menghapus permanen pesan