Pesan Peek-Lock (Tindakan Baca Non-Destruktif)

Operasi ini secara atomik mengambil dan mengunci pesan dari antrean atau langganan untuk diproses. Pesan dijamin tidak akan dikirimkan ke penerima lain (hanya pada antrean atau langganan yang sama) selama durasi kunci yang ditentukan dalam deskripsi antrean/langganan. Ketika kunci kedaluwarsa, pesan akan tersedia untuk penerima lain. Untuk menyelesaikan pemrosesan pesan, penerima harus mengeluarkan perintah hapus dengan ID kunci yang diterima dari operasi ini. Untuk mengabaikan pemrosesan pesan dan membuka kuncinya untuk penerima lain, perintah Buka Kunci Pesan harus dikeluarkan, jika tidak, periode durasi kunci dapat kedaluwarsa.

Operasi ini harus digunakan dalam aplikasi yang memerlukan jaminan pengiriman Setidaknya Sekali . Jika penerima tidak menghapus pesan sebelum pemrosesan berhasil, operasi ini memastikan bahwa penerima lain dapat mencoba memproses setelah periode durasi kunci berakhir.

Minta

Metode Meminta URI Versi HTTP
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head

atau

http{s}://{serviceNamespace}.servicebus.windows.net/{topicPath}/subscriptions/{subscriptionName}/messages/head|HTTP/1.1

Judul Permintaan

Tabel berikut ini menjelaskan header permintaan yang diperlukan dan opsional. Selain properti yang tercantum, header dapat berisi properti kustom. Lihat contoh.

Header Permintaan Deskripsi
Authorization Tentukan salah satu nilai token berikut:
  • Token JSON Web Token (JWT) Azure Active Directory (Azure AD).
    Contoh: Authorization: Bearer <Azure AD JWT token>.
    Untuk informasi tentang membuat token Azure AD, lihat Mengautentikasi dari aplikasi.
  • Token SAS.
    Contoh: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    Untuk informasi tentang membuat token SAS, lihat Membuat token Tanda Tangan Akses Bersama dan Menghasilkan token SAS.

Isi Permintaan

Tidak ada.

Respons

Respons mencakup kode status HTTP, sekumpulan header respons, dan isi respons.

Kode Respons

Kode Deskripsi
201 Pesan berhasil diambil dan dikunci.
204 Tidak ada pesan yang tersedia dalam periode batas waktu yang ditentukan.
400 Permintaan buruk.
401 Kegagalan otorisasi.
410 Antrean atau langganan yang ditentukan tidak ada.
500 Kesalahan internal.

Untuk informasi tentang kode status, lihat Status dan Kode Kesalahan.

Header Respons

Respons untuk operasi ini mencakup header berikut. Respons juga dapat mencakup header HTTP standar tambahan. Semua header standar sesuai dengan spesifikasi protokol HTTP/1.1.

Header Respons Deskripsi
Content-Type Atur ke application/atom+xml;type=entry;charset=utf-8.
Location URI pesan terkunci. Anda dapat menggunakan URI ini untuk membuka kunci atau menghapus pesan.
BrokerProperties JSON dikodekan BrokerProperties dari pesan yang diterima. Properti LockToken mewakili ID kunci untuk pesan yang dikembalikan. Properti SequenceNumber mewakili nomor urut pesan yang dikembalikan.

Isi Respons

Isi respons adalah isi pesan dari pesan yang diambil.

Contoh

Permintaan HTTP berikut mengunci dan mengembalikan pesan dari antrean:

POST https://your-namespace.servicebus.windows.net/HttpClientSampleQueue/messages/head?timeout=60 HTTP/1.1  
Authorization: SharedAccessSignature sr=your-namespace&sig=Fg8yUyR4MOmXfHfj55f5hY4jGb8x2Yc%2b3%2fULKZYxKZk%3d&se=1404256819&skn=RootManageSharedAccessKey  
Host: your-namespace.servicebus.windows.net  
Content-Length: 0  

Azure Service Bus mengembalikan respons berikut. Pesan berisi properti Priority kustom dan Customer:

HTTP/1.1 201 Created  
Transfer-Encoding: chunked  
Content-Type: application/atom+xml;type=entry;charset=utf-8  
Location: https://your-namespace.servicebus.windows.net/httpclientsamplequeue/messages/2/7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547  
Server: Microsoft-HTTPAPI/2.0  
BrokerProperties: {"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Wed, 02 Jul 2014 01:32:27 GMT","Label":"M1","LockToken":"7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547","LockedUntilUtc":"Wed, 02 Jul 2014 01:33:27 GMT","MessageId":"31907572164743c38741631acd554d6f","SequenceNumber":2,"State":"Active","TimeToLive":10}  
Priority: "High"  
Customer: "12345,ABC"  
Date: Wed, 02 Jul 2014 01:32:27 GMT  
  
12  
This is a message.  
0  

Lihat juga

Sampel Klien HTTP Azure Service Bus