Share via


İletiyi Güncelleştirme

İşlem, Update Message bir iletinin görünürlük zaman aşımını güncelleştirir. Bu işlemi bir iletinin içeriğini güncelleştirmek için de kullanabilirsiniz. İleti, UTF-8 kodlamalı bir XML isteğine dahil edilebilen bir biçimde olmalı ve kodlanmış iletinin boyutu 64 KB'a kadar olabilir. Bu işlem, Azure Kuyruk Depolama API'sinin 2011-08-18 sürümüyle kullanıma sunulmuştur.

İstek

İsteği aşağıdaki gibi oluşturabilirsiniz Update Message . HTTPS önerilir. myaccount değerini depolama hesabınızın adıyla, myqueue değerini ise kuyruğunuzun adıyla değiştirin.

Yöntem İstek URI'si HTTP sürümü
PUT https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> HTTP/1.1

Öykünülmüş depolama hizmeti

Bu işlem SDK 1.6 ve sonraki sürümlerde desteklenir.

Öykünülmüş depolama hizmetine yönelik bir istekte bulunurken öykünücü konak adını ve Kuyruk Depolama bağlantı noktasını olarak 127.0.0.1:10001, ardından öykünülmüş depolama hesabı adını belirtin.

Yöntem İstek URI'si HTTP sürümü
PUT http://127.0.0.1:10001/devstoreaccount1/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> HTTP/1.1

URI parametreleri

İstek URI'sinde aşağıdaki parametreleri belirtebilirsiniz.

Parametre Açıklama
popreceipt Gereklidir. İletiLeri Al veya İletiyi Güncelleştir işlemlerine yapılan önceki bir çağrıdan döndürülen geçerli pop makbuzu değerini belirtir. URL popreceipt ile kodlanmış olmalıdır.
visibilitytimeout Gereklidir. Sunucu süresine göre saniye olarak yeni görünürlük zaman aşımı değerini belirtir. Yeni değer 0'dan büyük veya buna eşit olmalıdır ve 7 günden uzun olamaz. İletinin görünürlük zaman aşımı süresi, süre sonu süresinden sonraki bir değere ayarlanamaz. İleti silinene veya süresi dolana kadar iletiyi güncelleştirebilirsiniz.
timeout İsteğe bağlı. timeout parametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz . Kuyruk Depolama işlemleri için zaman aşımlarını ayarlama.

İstek üst bilgileri

Aşağıdaki tabloda gerekli ve isteğe bağlı istek üst bilgileri açıklanmaktadır.

İstek üst bilgisi Açıklama
Authorization Gereklidir. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme.
Date or x-ms-date Gereklidir. İstek için Eşgüdümlü Evrensel Saat (UTC) biçimini belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme.
x-ms-version 2011-08-18 veya üzerini gerektirir. Bu istek için kullanılacak işlemin sürümünü belirtir. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma.
x-ms-client-request-id İsteğe bağlı. Günlüğe kaydetme yapılandırıldığında günlüklere kaydedilen 1 kibibayt (KiB) karakter sınırıyla istemci tarafından oluşturulan, opak bir değer sağlar. İstemci tarafı etkinlikleriyle sunucunun aldığı istekler arasında bağıntı sağlamak için bu üst bilgiyi kullanmanızı kesinlikle öneririz. Daha fazla bilgi için bkz. Azure Kuyruk Depolama'yı izleme.

İstek gövdesi

İsteğin gövdesi, ileti verilerini aşağıdaki XML biçiminde içerir. İleti içeriğinin UTF-8 ile kodlanabilen bir biçimde olması gerektiğini unutmayın.

<QueueMessage>  
    <MessageText>message-content</MessageText>  
</QueueMessage>  

Yanıt

Yanıt bir HTTP durum kodu ve bir dizi yanıt üst bilgisi içerir.

Durum kodu

Başarılı bir işlem 204 (İçerik Yok) durum kodunu döndürür. Durum kodları hakkında bilgi için bkz. Durum ve hata kodları.

Yanıt üst bilgileri

Bu işlemin yanıtı aşağıdaki üst bilgileri içerir. Yanıt ek, standart HTTP üst bilgileri de içerebilir. Tüm standart üst bilgiler HTTP/1.1 protokol belirtimine uygundur.

İstek üst bilgisi Açıklama
x-ms-request-id Bu üst bilgi, yapılan isteği benzersiz olarak tanımlar ve istek sorunlarını gidermek için kullanılabilir. Daha fazla bilgi için bkz . API işlemleriyle ilgili sorunları giderme.
x-ms-version İsteği çalıştırmak için kullanılan Kuyruk Depolama sürümünü gösterir. Bu üst bilgi, 2009-09-19 ve sonraki sürümlerde yapılan istekler için döndürülür.
Date Yanıtın başlatıldığı saati gösteren UTC tarih/saat değeri. Hizmet bu değeri oluşturur.
x-ms-popreceipt Kuyruk iletisinin pop alındı bilgisi.
x-ms-time-next-visible İletinin kuyrukta ne zaman görünür olacağını gösteren utc tarih/saat değeri.
x-ms-client-request-id İsteklerde ve karşılık gelen yanıtlarda sorun gidermek için bu üst bilgiyi kullanabilirsiniz. Bu üst bilginin değeri, istekte varsa üst bilginin değerine x-ms-client-request-id eşittir. Değer en fazla 1.024 görünür ASCII karakterdir. İstekte x-ms-client-request-id üst bilgi yoksa, yanıtta bu üst bilgi bulunmaz.

Yanıt gövdesi

Yok.

Yetkilendirme

Hesap sahibi bu işlemi gerçekleştirebilir. Ayrıca, paylaşılan erişim imzasına sahip olan ve bu işlemi gerçekleştirme izni olan herkes bunu yapabilir.

Örnek istek ve yanıt

Aşağıdaki istek, kuyruk iletisinin görünürlüğünü 30 saniye genişletir ve içeriğini güncelleştirir.

PUT https://myaccount.queue.core.windows.net/myqueue/messages/663d89aa-d1d9-42a2-9a6a-fcf822a97d2c?popreceipt=AgAAAAEAAAApAAAAGIw6Q29bzAE%3d&visibilitytimeout=30&timeout=30 HTTP/1.1  
  

İstek aşağıdaki üst bilgilerle gönderilir:

x-ms-version: 2011-08-18  
x-ms-date: Mon, 29 Aug 2011 17:17:21 GMT  
Authorization: SharedKey myaccount:batcrWZ35InGCZeTUFWMdIQiOZPCW7UEyeGdDOg7WW4=  
Content-Length: 75  

İstek aşağıdaki XML gövdesiyle gönderilir:

<QueueMessage>  
    <MessageText>new-message-content</MessageText>  
</QueueMessage>  

İstek gönderildikten sonra aşağıdaki yanıt döndürülür:

HTTP/1.1 204 No Content  
Content-Length: 0  
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: df34a7dd-3cbe-4206-a586-d6de3cf225a7  
x-ms-version: 2011-08-18  
x-ms-popreceipt: AwAAAAIAAAApAAAAINtMQ29bzAEBAAAA  
x-ms-time-next-visible: Mon, 29 Aug 2011 17:17:51 GMT  
Date: Mon, 29 Aug 2011 17:17:21 GMT  

Açıklamalar

Update Message Belirtilen ileti kuyrukta yoksa veya belirtilen pop alındı bilgisi iletiyle eşleşmiyorsa işlem başarısız olur.

İşlem veya Update Message işlem tarafından Get Messages bir pop alındı bilgisi döndürülür. Pop alındı bilgileri, aşağıdaki olaylardan biri gerçekleşene kadar geçerli kalır:

  • İletinin süresi doldu.

  • İleti, veya Update Message'den Get Messages alınan son pop alındı bilgisi kullanılarak silindi.

  • Görünmezlik süresi geçti ve bir istek tarafından Get Messages iletinin sırası kaldırıldı. Görünmezlik süresi geçtiğinde, ileti yeniden görünür hale gelir. Başka bir Get Messages istek tarafından alınırsa, döndürülen pop alındı bilgisi iletiyi silmek veya güncelleştirmek için kullanılabilir.

  • İleti yeni bir görünürlük zaman aşımı ile güncelleştirildi. İleti güncelleştirildiğinde yeni bir açılır makbuz döndürülür.

Bir kuyruk iletisinin Update Message görünmezliğini sürekli genişletmek için işlemini kullanabilirsiniz. Bir çalışan rolünün kuyruk iletisi kiralamasını istiyorsanız bu işlev yararlı olabilir. Örneğin, bir çalışan rolü İleti Al'ı çağırırsa ve bir iletiyi işlemek için daha fazla zamana ihtiyacı olduğunu algılarsa, ileti işlenene kadar iletinin görünmezliğini sürekli genişletebilir. çalışan rolü işleme sırasında başarısız olursa, sonunda ileti yeniden görünür hale gelir ve başka bir çalışan rolü bunu işleyebilecektir.

Ayrıca bkz.

Azure Depolama'ya yönelik istekleri yetkilendirme
Durum ve hata kodları
Kuyruk Depolama hata kodları