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 melakukan panggilan untuk mengubah batas waktu konfirmasi.
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 mengirimkan permintaan modifyAckDeadline secara berkala.Library klien tingkat tinggi untuk Python, Go, dan Java menggunakan persentil ke-99 penundaan konfirmasi untuk menentukan durasi setiap perpanjangan.
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 duplikat dan nilai yang tinggi menunda pengiriman ulang pesan yang gagal. Menentukan nilai yang tepat bisa jadi sulit, terutama jika perkiraan waktu pemrosesan untuk pesan yang berbeda sangat bervariasi.
Untuk mengetahui 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 digunakan oleh library klien untuk memperpanjang batas waktu konfirmasi pesan dengan menggunakan permintaan
modify acknowledgment deadline
. Properti ini memungkinkan Anda menentukan durasi yang Anda inginkan agar klien pelanggan memproses pesan.Durasi maksimum untuk setiap ekstensi pengakuan. Jumlah maksimum waktu untuk memperpanjang batas waktu konfirmasi untuk setiap
modify acknowledgment deadline
permintaan. Properti ini memungkinkan Anda menentukan jangka waktu yang dibutuhkan Pub/Sub untuk mengirim ulang pesan. Pengiriman ulang terjadi saat pelanggan pertama yang memproses pesan mengalami error atau tidak berfungsi dengan baik dan tidak dapat lagi mengirim permintaanmodify acknowledgment deadline
.Durasi minimum untuk setiap ekstensi pengakuan. Jumlah minimum waktu 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 masa berlaku habis dan pengiriman ulang pesan saat menggunakan penarikan unary atau
library klien tingkat rendah, gunakan permintaan modify acknowledgment deadline
untuk memperpanjang batas waktu
konfirmasi. Pengecualiannya adalah library klien tingkat tinggi Go dan C++ yang menyediakan pengelolaan sewa saat menggunakan penarikan unary. Lihat contoh berikut untuk penarikan 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 API C# Pub/Sub.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Java API.
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
Contoh berikut menggunakan library klien Pub/Sub Ruby v3. Jika Anda masih menggunakan library v2, lihat panduan migrasi ke v3. Untuk melihat daftar contoh kode Ruby v2, lihat contoh kode yang tidak digunakan lagi.
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Pub/Sub.
Langkah berikutnya
Baca opsi penayangan lainnya yang dapat Anda konfigurasi 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 dikonfirmasi atau menghapus permanen pesan