Bagikan melalui


Penangguhan pesan

Ketika klien antrean atau langganan menerima pesan bahwa ia bersedia untuk memproses, tetapi pemrosesan saat ini tidak dimungkinkan karena keadaan khusus, ia memiliki opsi untuk "menagguhkan" pengambilan pesan ke titik selanjutnya. Pesan tetap dalam antrean atau langganan, tetapi disisihkan.

Catatan

Pesan yang ditangguhkan tidak kedaluwarsa dan secara otomatis dipindahkan ke antrean dead-letter hingga aplikasi klien mencoba menerimanya menggunakan API dan nomor urut. Perilaku ini secara desain. Ketika klien mencoba mengambil pesan yang ditangguhkan, klien diperiksa untuk kondisi kedaluwarsa dan dipindahkan ke antrean surat mati jika sudah kedaluwarsa. Pesan yang kedaluwarsa dipindahkan ke subantre deadletter hanya ketika fitur surat mati diaktifkan untuk entitas (antrean atau langganan).

Sampel skenario

Penangguhan adalah fitur yang dibuat khusus untuk skenario pemrosesan alur kerja. Kerangka kerja alur kerja mungkin memerlukan operasi tertentu untuk diproses dalam urutan tertentu. Mereka mungkin harus menunda pemrosesan beberapa pesan yang diterima sampai pekerjaan sebelumnya yang ditentukan yang diberitahukan oleh pesan lain telah selesai.

Contoh ilustrasi sederhana adalah urutan pemrosesan pesanan di mana pemberitahuan pembayaran dari penyedia pembayaran eksternal muncul dalam sistem sebelum pesanan pembelian yang cocok telah disebarkan dari depan penyimpanan ke sistem pemenuhan. Dalam hal ini, sistem pemenuhan mungkin menunda pemrosesan pemberitahuan pembayaran sampai ada perintah untuk mengaitkannya. Dalam skenario pertemuan, di mana pesan dari sumber yang berbeda mendorong alur kerja ke depan, urutan eksekusi real-time mungkin benar, tetapi pesan yang mencerminkan hasilnya mungkin tidak berurutan.

Pada akhirnya, bantuan penangguhan dalam menyusun ulang pesan dari pesanan kedatangan ke dalam urutan di mana mereka dapat diproses, sambil meninggalkan pesan-pesan itu dengan aman di penyimpanan pesan yang memrosesannya perlu ditunda.

Jika pesan tidak dapat diproses karena sumber daya tertentu untuk menangani pesan tersebut untuk sementara waktu tidak tersedia tetapi pemrosesan pesan tidak boleh ditangguhkan secara ringkas, cara untuk meletakkan pesan tersebut di samping selama beberapa menit adalah dengan mengingat nomor urut dalam pesan terjadwal yang akan diposting dalam beberapa menit, dan mengambil kembali pesan yang ditangguhkan ketika pesan terjadwal tiba. Jika pengatur pesan bergantung pada database untuk semua operasi dan database tersebut untuk sementara waktu tidak tersedia, itu seharusnya tidak menggunakan deferral, melainkan menangguhkan menerima pesan sama sekali sampai database tersedia lagi.

Mengambil pesan yang ditangguhkan

Pesan yang ditangguhkan tetap berada dalam antrean utama bersama dengan semua pesan aktif lainnya (tidak seperti pesan surat mati yang hidup dalam subantrean), tetapi tidak lagi dapat diterima menggunakan operasi penerima reguler. Pesan yang ditangguhkan dapat ditemukan melalui penjelajahan pesan atau mengintip jika aplikasi kehilangan jejaknya.

Untuk mengambil pesan yang ditangguhkan, pemiliknya bertanggung jawab untuk mengingat nomor urut saat menundanya. Setiap penerima yang mengetahui nomor urutan pesan yang ditangguhkan nantinya dapat menerima pesan dengan menggunakan metode penerimaan yang mengambil nomor urut sebagai parameter. Untuk informasi selengkapnya tentang nomor urut, lihat Urutan pesan dan tanda waktu.

Langkah berikutnya

Cobalah sampel dalam bahasa pilihan Anda untuk menjelajahi fitur Azure Service Bus.

Lihat sampel untuk pustaka klien .NET dan Java yang lebih lama di sini:

Pada 30 September 2026, kami akan menghentikan pustaka Azure Bus Layanan SDK WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus, dan com.microsoft.azure.servicebus, yang tidak sesuai dengan panduan Azure SDK. Kami juga akan mengakhiri dukungan protokol SBMP, sehingga Anda tidak akan lagi dapat menggunakan protokol ini setelah 30 September 2026. Migrasikan ke pustaka Azure SDK terbaru, yang menawarkan pembaruan keamanan penting dan kemampuan yang ditingkatkan, sebelum tanggal tersebut.

Meskipun pustaka lama masih dapat digunakan melebihi 30 September 2026, pustaka tersebut tidak akan lagi menerima dukungan dan pembaruan resmi dari Microsoft. Untuk informasi selengkapnya, lihat pengumuman penghentian dukungan.