All Products
Search
Document Center

:Mencegah loss pesan atau konsumsi duplikat di Simple Message Queue (formerly MNS)

Last Updated:Jun 04, 2026

Ketika beberapa konsumen mengambil pesan dari antrian yang sama, sebuah pesan dapat diproses lebih dari sekali atau hilang jika konsumen gagal di tengah proses. Simple Message Queue (formerly MNS) menggunakan mekanisme visibility timeout untuk mencegah kedua skenario tersebut.

Setiap antrian di Simple Message Queue (formerly MNS) memiliki visibility timeout yang dapat dikonfigurasi. Saat konsumen mengambil sebuah pesan, pesan tersebut menjadi tidak terlihat oleh konsumen lain selama durasi timeout tersebut, sehingga memberikan waktu eksklusif bagi konsumen untuk memproses pesan.

Cara kerja

Setelah mengambil pesan, konsumen harus melakukan salah satu aksi berikut sebelum visibility timeout-nya berakhir:

  • Pemrosesan berhasil: Hapus pesan menggunakan ReceiptHandle. Tindakan ini akan menghapus pesan secara permanen dari antrian dan mengonfirmasi bahwa pesan telah berhasil dikonsumsi.

  • Pemrosesan gagal atau memakan waktu terlalu lama: Perpanjang visibility timeout dengan memanggil ChangeVisibilityTimeout sebelum timeout berakhir. Jika Anda tidak memperpanjang timeout tersebut, pesan akan kembali terlihat dan dapat diambil oleh konsumen lain, sehingga berpotensi menyebabkan pemrosesan duplikat.