Saat pesan dikirim ke pelanggan pull, pelanggan harus memproses dan mengonfirmasi (ack) pesan dalam batas waktu konfirmasi. Jika tidak, pelanggan harus memperpanjang batas waktu dengan panggilan untuk mengubah batas waktu respons.
Library klien tingkat tinggi Pub/Sub menyediakan pengelolaan sewa 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 berkala.Library klien tingkat tinggi untuk Python, Go, Java, dan .Net menggunakan persentil ke-99 dari penundaan konfirmasi untuk menentukan durasi setiap ekstensi.
Pengelolaan sewa memungkinkan Anda memiliki kontrol yang lebih terperinci atas batas waktu respons 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 rendah akan meningkatkan kemungkinan duplikat dan nilai tinggi akan menunda pengiriman ulang pesan yang gagal. Menentukan nilai yang tepat bisa jadi sulit, terutama saat 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 sewa.
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 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 tidak berfungsi 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 jika Anda mengaktifkan pengiriman tepat satu kali.
Mengelola batas waktu konfirmasi secara manual
Untuk menghindari habis masa berlaku dan pengiriman ulang pesan saat menggunakan pull unary atau
library klien tingkat rendah, gunakan permintaan modify acknowledgment deadline
untuk memperpanjang batas waktu
konfirmasinya. Pengecualian adalah library klien tingkat tinggi Go dan C++
yang menyediakan pengelolaan sewa saat menggunakan pull
unary. Lihat contoh berikut untuk pull unary dengan pengelolaan sewa:
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui 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 mengetahui informasi selengkapnya, lihat dokumentasi referensi Java API Pub/Sub.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan Memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
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 tentang opsi pengiriman lainnya yang dapat Anda konfigurasikan untuk langganan:
Menangani kegagalan pesan dengan kebijakan percobaan ulang langganan
Meneruskan pesan yang tidak terkirim ke topik yang dihentikan pengirimannya
Memutar ulang pesan yang sebelumnya telah di-ACK atau menghapus permanen pesan