QueueClient الفصل

عميل للتفاعل مع قائمة انتظار معينة.

لمزيد من التكوين الاختياري، يرجى النقر هنا.

توريث
azure.storage.queue._shared.base_client.StorageAccountHostsMixin
QueueClient
azure.storage.queue._encryption.StorageEncryptionMixin
QueueClient

الدالمنشئ

QueueClient(account_url: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any)

المعلمات

account_url
str
مطلوب

عنوان URL لحساب التخزين. لإنشاء عميل نظرا ل URI الكامل لقائمة الانتظار، استخدم from_queue_url classmethod.

queue_name
str
مطلوب

اسم قائمة الانتظار.

credential
القيمة الافتراضية: None

بيانات الاعتماد التي يجب المصادقة بها. هذا اختياري إذا كان عنوان URL للحساب يحتوي بالفعل على رمز SAS مميز. يمكن أن تكون القيمة سلسلة رمز SAS المميز أو مثيل AzureSasCredential أو AzureNamedKeyCredential من azure.core.credentials أو مفتاح وصول مشترك للحساب أو مثيل فئة TokenCredentials من azure.identity. إذا كان عنوان URI للمورد يحتوي بالفعل على رمز SAS المميز، فسيتم تجاهل هذا لصالح بيانات اعتماد صريحة

  • باستثناء حالة AzureSasCredential، حيث سترفع رموز SAS المميزة المتعارضة ValueError. إذا كنت تستخدم مثيل AzureNamedKeyCredential، يجب أن يكون "الاسم" هو اسم حساب التخزين، ويجب أن يكون "المفتاح" هو مفتاح حساب التخزين.
api_version
str

إصدار Storage API لاستخدامه للطلبات. القيمة الافتراضية هي أحدث إصدار خدمة متوافق مع SDK الحالي. قد يؤدي الإعداد إلى إصدار أقدم إلى تقليل توافق الميزات.

secondary_hostname
str

اسم مضيف نقطة النهاية الثانوية.

message_encode_policy

نهج الترميز لاستخدام الرسائل الصادرة. الافتراضي هو عدم ترميز الرسائل. تتضمن TextBase64EncodePolicyالخيارات الأخرى ، BinaryBase64EncodePolicy أو بلا.

message_decode_policy

نهج فك التشفير لاستخدامه في الرسائل الواردة. القيمة الافتراضية هي عدم فك تشفير الرسائل. تتضمن TextBase64DecodePolicyالخيارات الأخرى ، BinaryBase64DecodePolicy أو بلا.

audience
str

الجمهور الذي يجب استخدامه عند طلب الرموز المميزة لمصادقة Azure Active Directory. يكون له تأثير فقط عندما تكون بيانات الاعتماد من نوع TokenCredential. قد تكون https://storage.azure.com/ القيمة (افتراضية) أو https://.queue.core.windows.net.

أمثلة

إنشاء عميل قائمة الانتظار باستخدام عنوان URL وبيانات الاعتماد.


   token_auth_queue = QueueClient.from_queue_url(
       queue_url=queue.url,
       credential=sas_token
   )

الأساليب

clear_messages

حذف كافة الرسائل من قائمة الانتظار المحددة.

close

هذا الأسلوب هو إغلاق مآخذ التوصيل التي يفتحها العميل. لا يلزم استخدامه عند استخدام مع مدير سياق.

create_queue

إنشاء قائمة انتظار جديدة في حساب التخزين.

إذا كانت قائمة انتظار بنفس الاسم موجودة بالفعل، تفشل العملية باستخدام ResourceExistsError.

delete_message

حذف الرسالة المحددة.

عادة بعد أن يسترد العميل رسالة مع عملية تلقي الرسائل، من المتوقع أن يقوم العميل بمعالجة الرسالة وحذفها. لحذف الرسالة، يجب أن يكون لديك كائن الرسالة نفسه، أو عنصرين من البيانات: المعرف pop_receipt. يتم إرجاع المعرف من عملية receive_messages السابقة. يتم إرجاع pop_receipt من أحدث receive_messages أو update_message عملية. لكي تنجح عملية delete_message، يجب أن تتطابق pop_receipt المحددة على الطلب مع pop_receipt التي تم إرجاعها من receive_messages العملية أو update_message .

delete_queue

حذف قائمة الانتظار المحددة وأي رسائل تحتوي عليها.

عند حذف قائمة انتظار بنجاح، يتم وضع علامة عليها على الفور للحذف ولم يعد من الممكن للعملاء الوصول إليها. تتم إزالة قائمة الانتظار لاحقا من خدمة قائمة الانتظار أثناء تجميع البيانات المهملة.

لاحظ أنه من المحتمل أن يستغرق حذف قائمة انتظار 40 ثانية على الأقل لإكمالها. إذا تمت محاولة إجراء عملية مقابل قائمة الانتظار أثناء حذفها، <xref:azure.storage.queue.HttpResponseError> فسيتم طرح.

from_connection_string

إنشاء QueueClient من سلسلة اتصال.

from_queue_url

عميل للتفاعل مع قائمة انتظار معينة.

get_queue_access_policy

إرجاع تفاصيل حول أي نهج وصول مخزنة محددة في قائمة الانتظار التي يمكن استخدامها مع توقيعات الوصول المشترك.

get_queue_properties

إرجاع كافة بيانات التعريف المعرفة من قبل المستخدم لقائمة الانتظار المحددة.

لا تتضمن البيانات التي تم إرجاعها قائمة الرسائل الخاصة بقائمة الانتظار.

peek_messages

استرداد رسالة واحدة أو أكثر من مقدمة قائمة الانتظار، ولكن لا يغير رؤية الرسالة.

يمكن استرداد الرسائل المرئية فقط. عند استرداد رسالة للمرة الأولى مع استدعاء إلى receive_messages، يتم تعيين الخاصية dequeue_count الخاصة بها إلى 1. إذا لم يتم حذفه وتم استرداده لاحقا مرة أخرى، يتم زيادة الخاصية dequeue_count. قد يستخدم العميل هذه القيمة لتحديد عدد المرات التي تم فيها استرداد رسالة. لاحظ أن استدعاء peek_messages لا يؤدي إلى زيادة قيمة dequeue_count، ولكنه يرجع هذه القيمة للعميل للقراءة.

إذا تم تعيين حقل مفتاح تشفير المفتاح أو المحلل على كائن الخدمة المحلي، فسيتم فك تشفير الرسائل قبل إرجاعها.

receive_message

إزالة رسالة واحدة من مقدمة قائمة الانتظار.

عند استرداد الرسالة من قائمة الانتظار، تتضمن الاستجابة محتوى الرسالة وقيمة pop_receipt، وهي مطلوبة لحذف الرسالة. لا يتم حذف الرسالة تلقائيا من قائمة الانتظار، ولكن بعد استردادها، لا تكون مرئية للعملاء الآخرين للفاصل الزمني المحدد بواسطة المعلمة visibility_timeout.

إذا تم تعيين حقل مفتاح تشفير المفتاح أو المحلل على كائن الخدمة المحلي، فسيتم فك تشفير الرسالة قبل إرجاعها.

receive_messages

إزالة رسالة واحدة أو أكثر من مقدمة قائمة الانتظار.

عند استرداد رسالة من قائمة الانتظار، تتضمن الاستجابة محتوى الرسالة وقيمة pop_receipt، المطلوبة لحذف الرسالة. لا يتم حذف الرسالة تلقائيا من قائمة الانتظار، ولكن بعد استردادها، لا تكون مرئية للعملاء الآخرين للفاصل الزمني المحدد بواسطة المعلمة visibility_timeout. سيقوم المكرر بإحضار الرسائل باستمرار حتى تكون قائمة الانتظار فارغة أو max_messages يتم الوصول إليها (إذا تم تعيين max_messages).

إذا تم تعيين حقل مفتاح تشفير المفتاح أو المحلل على كائن الخدمة المحلي، فسيتم فك تشفير الرسائل قبل إرجاعها.

send_message

إضافة رسالة جديدة إلى الجزء الخلفي من قائمة انتظار الرسائل.

تحدد مهلة الرؤية الوقت الذي ستكون فيه الرسالة غير مرئية. بعد انتهاء المهلة، ستصبح الرسالة مرئية. إذا لم يتم تحديد مهلة رؤية، يتم استخدام القيمة الافتراضية 0.

يحدد وقت بقاء الرسالة المدة التي ستبقى فيها الرسالة في قائمة الانتظار. سيتم حذف الرسالة من قائمة الانتظار عند انتهاء فترة البقاء.

إذا تم تعيين حقل مفتاح تشفير المفتاح على كائن الخدمة المحلي، فإن هذا الأسلوب سيقوم بتشفير المحتوى قبل التحميل.

set_queue_access_policy

تعيين نهج الوصول المخزنة لقائمة الانتظار التي يمكن استخدامها مع توقيعات الوصول المشترك.

عند تعيين أذونات لقائمة انتظار، يتم استبدال الأذونات الموجودة. لتحديث أذونات قائمة الانتظار، اتصل get_queue_access_policy بإحضار جميع نهج الوصول المقترنة بقائمة الانتظار، وقم بتعديل نهج الوصول الذي ترغب في تغييره، ثم استدع هذه الدالة مع المجموعة الكاملة من البيانات لتنفيذ التحديث.

عند إنشاء نهج وصول مخزن في قائمة انتظار، قد يستغرق الأمر ما يصل إلى 30 ثانية حتى يصبح ساري المفعول. أثناء هذا الفاصل الزمني، سيطرح توقيع الوصول المشترك المقترن بنهج الوصول المخزن حتى يصبح نهج الوصول نشطا <xref:azure.storage.queue.HttpResponseError> .

set_queue_metadata

تعيين بيانات التعريف المعرفة من قبل المستخدم في قائمة الانتظار المحددة.

ترتبط بيانات التعريف بقائمة الانتظار كأزواج قيمة الاسم.

update_message

التحديثات مهلة رؤية الرسالة. يمكنك أيضا استخدام هذه العملية لتحديث محتويات الرسالة.

يمكن استخدام هذه العملية لتوسيع نطاق رسالة قائمة الانتظار باستمرار. يمكن أن تكون هذه الوظيفة مفيدة إذا كنت تريد أن "يستأجر" دور عامل رسالة قائمة انتظار. على سبيل المثال، إذا كان دور العامل يستدعي receive_messages ويدرك أنه يحتاج إلى مزيد من الوقت لمعالجة رسالة، فيمكنه توسيع نطاق عدم وضوح الرسالة باستمرار حتى تتم معالجتها. إذا فشل دور العامل أثناء المعالجة، فستصبح الرسالة مرئية مرة أخرى في النهاية ويمكن لدور عامل آخر معالجتها.

إذا تم تعيين حقل مفتاح تشفير المفتاح على كائن الخدمة المحلي، فإن هذا الأسلوب سيقوم بتشفير المحتوى قبل التحميل.

clear_messages

حذف كافة الرسائل من قائمة الانتظار المحددة.

clear_messages(**kwargs: Any) -> None

المعلمات

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

أمثلة

مسح كافة الرسائل.


   queue.clear_messages()

close

هذا الأسلوب هو إغلاق مآخذ التوصيل التي يفتحها العميل. لا يلزم استخدامه عند استخدام مع مدير سياق.

close()

create_queue

إنشاء قائمة انتظار جديدة في حساب التخزين.

إذا كانت قائمة انتظار بنفس الاسم موجودة بالفعل، تفشل العملية باستخدام ResourceExistsError.

create_queue(*, metadata: Dict[str, str] | None = None, **kwargs: Any) -> None

المعلمات

metadata
Dict[str,str]

إملاء يحتوي على أزواج الاسم والقيمة لإقرانها بقائمة الانتظار كبيانات تعريف. لاحظ أن تحتفظ أسماء بيانات التعريف بالحالة التي تم إنشاؤها بها، ولكنها غير متحسسة لحالة الأحرف عند تعيينها أو قراءتها.

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

المرتجعات

لا شيء أو نتيجة cls (استجابة)

نوع الإرجاع

استثناءات

StorageErrorException

أمثلة

إنشاء قائمة انتظار.


   queue.create_queue()

delete_message

حذف الرسالة المحددة.

عادة بعد أن يسترد العميل رسالة مع عملية تلقي الرسائل، من المتوقع أن يقوم العميل بمعالجة الرسالة وحذفها. لحذف الرسالة، يجب أن يكون لديك كائن الرسالة نفسه، أو عنصرين من البيانات: المعرف pop_receipt. يتم إرجاع المعرف من عملية receive_messages السابقة. يتم إرجاع pop_receipt من أحدث receive_messages أو update_message عملية. لكي تنجح عملية delete_message، يجب أن تتطابق pop_receipt المحددة على الطلب مع pop_receipt التي تم إرجاعها من receive_messages العملية أو update_message .

delete_message(message: str | QueueMessage, pop_receipt: str | None = None, **kwargs: Any) -> None

المعلمات

message
str أو QueueMessage
مطلوب

كائن الرسالة أو المعرف الذي يحدد الرسالة المراد حذفها.

pop_receipt
str
مطلوب

قيمة إيصال pop صالحة تم إرجاعها من استدعاء سابق إلى receive_messages أو update_message.

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

أمثلة

حذف رسالة.


   # Get the message at the front of the queue
   msg = next(queue.receive_messages())

   # Delete the specified message
   queue.delete_message(msg)

delete_queue

حذف قائمة الانتظار المحددة وأي رسائل تحتوي عليها.

عند حذف قائمة انتظار بنجاح، يتم وضع علامة عليها على الفور للحذف ولم يعد من الممكن للعملاء الوصول إليها. تتم إزالة قائمة الانتظار لاحقا من خدمة قائمة الانتظار أثناء تجميع البيانات المهملة.

لاحظ أنه من المحتمل أن يستغرق حذف قائمة انتظار 40 ثانية على الأقل لإكمالها. إذا تمت محاولة إجراء عملية مقابل قائمة الانتظار أثناء حذفها، <xref:azure.storage.queue.HttpResponseError> فسيتم طرح.

delete_queue(**kwargs: Any) -> None

المعلمات

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

نوع الإرجاع

أمثلة

حذف قائمة انتظار.


   queue.delete_queue()

from_connection_string

إنشاء QueueClient من سلسلة اتصال.

from_connection_string(conn_str: str, queue_name: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self

المعلمات

conn_str
str
مطلوب

سلسلة الاتصال إلى حساب Azure Storage.

queue_name
str
مطلوب

اسم قائمة الانتظار.

credential
القيمة الافتراضية: None

بيانات الاعتماد التي يجب المصادقة بها. هذا اختياري إذا كان عنوان URL للحساب يحتوي بالفعل على رمز SAS مميز، أو كان سلسلة الاتصال يحتوي بالفعل على قيم مفتاح وصول مشتركة. يمكن أن تكون القيمة سلسلة رمز SAS المميز أو مثيل AzureSasCredential أو AzureNamedKeyCredential من azure.core.credentials أو مفتاح وصول مشترك للحساب أو مثيل فئة TokenCredentials من azure.identity. ستكون لبيانات الاعتماد المقدمة هنا الأسبقية على تلك الموجودة في سلسلة الاتصال. إذا كنت تستخدم مثيل AzureNamedKeyCredential، يجب أن يكون "الاسم" هو اسم حساب التخزين، ويجب أن يكون "المفتاح" هو مفتاح حساب التخزين.

audience
str

الجمهور الذي يجب استخدامه عند طلب الرموز المميزة لمصادقة Azure Active Directory. يكون له تأثير فقط عندما تكون بيانات الاعتماد من نوع TokenCredential. قد تكون https://storage.azure.com/ القيمة (افتراضية) أو https://.queue.core.windows.net.

المرتجعات

عميل قائمة انتظار.

نوع الإرجاع

أمثلة

إنشاء عميل قائمة الانتظار من سلسلة الاتصال.


   from azure.storage.queue import QueueClient
   queue = QueueClient.from_connection_string(self.connection_string, "myqueue1")

from_queue_url

عميل للتفاعل مع قائمة انتظار معينة.

from_queue_url(queue_url: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self

المعلمات

queue_url
str
مطلوب

عنوان URI الكامل لقائمة الانتظار، بما في ذلك رمز SAS المميز إذا تم استخدامه.

credential
القيمة الافتراضية: None

بيانات الاعتماد التي يجب المصادقة بها. هذا اختياري إذا كان عنوان URL للحساب يحتوي بالفعل على رمز SAS مميز. يمكن أن تكون القيمة سلسلة رمز SAS المميز أو مثيل AzureSasCredential أو AzureNamedKeyCredential من azure.core.credentials أو مفتاح وصول مشترك للحساب أو مثيل فئة TokenCredentials من azure.identity. إذا كان عنوان URI للمورد يحتوي بالفعل على رمز SAS المميز، فسيتم تجاهل هذا لصالح بيانات اعتماد صريحة

  • باستثناء حالة AzureSasCredential، حيث سترفع رموز SAS المميزة المتعارضة ValueError. إذا كنت تستخدم مثيل AzureNamedKeyCredential، يجب أن يكون "الاسم" هو اسم حساب التخزين، ويجب أن يكون "المفتاح" هو مفتاح حساب التخزين.
audience
str

الجمهور الذي يجب استخدامه عند طلب الرموز المميزة لمصادقة Azure Active Directory. يكون له تأثير فقط عندما تكون بيانات الاعتماد من نوع TokenCredential. قد تكون https://storage.azure.com/ القيمة (افتراضية) أو https://.queue.core.windows.net.

المرتجعات

عميل قائمة انتظار.

نوع الإرجاع

get_queue_access_policy

إرجاع تفاصيل حول أي نهج وصول مخزنة محددة في قائمة الانتظار التي يمكن استخدامها مع توقيعات الوصول المشترك.

get_queue_access_policy(**kwargs: Any) -> Dict[str, AccessPolicy]

المعلمات

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

المرتجعات

قاموس لنهج الوصول المقترنة بقائمة الانتظار.

نوع الإرجاع

get_queue_properties

إرجاع كافة بيانات التعريف المعرفة من قبل المستخدم لقائمة الانتظار المحددة.

لا تتضمن البيانات التي تم إرجاعها قائمة الرسائل الخاصة بقائمة الانتظار.

get_queue_properties(**kwargs: Any) -> QueueProperties

المعلمات

timeout
int

يتم التعبير عن معلمة المهلة بالثوان.

المرتجعات

بيانات التعريف المعرفة من قبل المستخدم لقائمة الانتظار.

نوع الإرجاع

أمثلة

احصل على الخصائص في قائمة الانتظار.


   properties = queue.get_queue_properties().metadata

peek_messages

استرداد رسالة واحدة أو أكثر من مقدمة قائمة الانتظار، ولكن لا يغير رؤية الرسالة.

يمكن استرداد الرسائل المرئية فقط. عند استرداد رسالة للمرة الأولى مع استدعاء إلى receive_messages، يتم تعيين الخاصية dequeue_count الخاصة بها إلى 1. إذا لم يتم حذفه وتم استرداده لاحقا مرة أخرى، يتم زيادة الخاصية dequeue_count. قد يستخدم العميل هذه القيمة لتحديد عدد المرات التي تم فيها استرداد رسالة. لاحظ أن استدعاء peek_messages لا يؤدي إلى زيادة قيمة dequeue_count، ولكنه يرجع هذه القيمة للعميل للقراءة.

إذا تم تعيين حقل مفتاح تشفير المفتاح أو المحلل على كائن الخدمة المحلي، فسيتم فك تشفير الرسائل قبل إرجاعها.

peek_messages(max_messages: int | None = None, **kwargs: Any) -> List[QueueMessage]

المعلمات

max_messages
int
مطلوب

قيمة عدد صحيح غير صفري تحدد عدد الرسائل التي يجب النظر إليها خاطفة من قائمة الانتظار، بحد أقصى 32. بشكل افتراضي، يتم نظرة خاطفة على رسالة واحدة من قائمة الانتظار مع هذه العملية.

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

المرتجعات

قائمة QueueMessage الكائنات. لاحظ أنه لن يتم ملء next_visible_on pop_receipt لأن النظرة الخاطفة لا تظهر الرسالة ويمكنها استرداد الرسائل المرئية بالفعل فقط.

نوع الإرجاع

أمثلة

معاينة الرسائل.


   # Peek at one message at the front of the queue
   msg = queue.peek_messages()

   # Peek at the last 5 messages
   messages = queue.peek_messages(max_messages=5)

   # Print the last 5 messages
   for message in messages:
       print(message.content)

receive_message

إزالة رسالة واحدة من مقدمة قائمة الانتظار.

عند استرداد الرسالة من قائمة الانتظار، تتضمن الاستجابة محتوى الرسالة وقيمة pop_receipt، وهي مطلوبة لحذف الرسالة. لا يتم حذف الرسالة تلقائيا من قائمة الانتظار، ولكن بعد استردادها، لا تكون مرئية للعملاء الآخرين للفاصل الزمني المحدد بواسطة المعلمة visibility_timeout.

إذا تم تعيين حقل مفتاح تشفير المفتاح أو المحلل على كائن الخدمة المحلي، فسيتم فك تشفير الرسالة قبل إرجاعها.

receive_message(*, visibility_timeout: int | None = None, **kwargs: Any) -> QueueMessage | None

المعلمات

visibility_timeout
int

إذا لم يتم تحديدها، فإن القيمة الافتراضية هي 30. يحدد قيمة مهلة الرؤية الجديدة، بالثوان، بالنسبة إلى وقت الخادم. يجب أن تكون القيمة أكبر من أو تساوي 1، ولا يمكن أن تكون أكبر من 7 أيام. لا يمكن تعيين مهلة رؤية الرسالة إلى قيمة بعد وقت انتهاء الصلاحية. يجب تعيين visibility_timeout إلى قيمة أصغر من قيمة مدة البقاء.

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

المرتجعات

إرجاع رسالة من قائمة الانتظار أو بلا إذا كانت قائمة الانتظار فارغة.

نوع الإرجاع

أمثلة

تلقي رسالة واحدة من قائمة الانتظار.


   # Pop two messages from the front of the queue
   message1 = queue.receive_message()
   message2 = queue.receive_message()
   # We should see message 3 if we peek
   message3 = queue.peek_messages()[0]

   if not message1 or not message2 or not message3:
       raise ValueError("One of the messages are None.")

   print(message1.content)
   print(message2.content)
   print(message3.content)

receive_messages

إزالة رسالة واحدة أو أكثر من مقدمة قائمة الانتظار.

عند استرداد رسالة من قائمة الانتظار، تتضمن الاستجابة محتوى الرسالة وقيمة pop_receipt، المطلوبة لحذف الرسالة. لا يتم حذف الرسالة تلقائيا من قائمة الانتظار، ولكن بعد استردادها، لا تكون مرئية للعملاء الآخرين للفاصل الزمني المحدد بواسطة المعلمة visibility_timeout. سيقوم المكرر بإحضار الرسائل باستمرار حتى تكون قائمة الانتظار فارغة أو max_messages يتم الوصول إليها (إذا تم تعيين max_messages).

إذا تم تعيين حقل مفتاح تشفير المفتاح أو المحلل على كائن الخدمة المحلي، فسيتم فك تشفير الرسائل قبل إرجاعها.

receive_messages(*, messages_per_page: int | None = None, visibility_timeout: int | None = None, max_messages: int | None = None, **kwargs: Any) -> ItemPaged[QueueMessage]

المعلمات

visibility_timeout
int

إذا لم يتم تحديدها، فإن القيمة الافتراضية هي 30. يحدد قيمة مهلة الرؤية الجديدة، بالثوان، بالنسبة إلى وقت الخادم. يجب أن تكون القيمة أكبر من أو تساوي 1، ولا يمكن أن تكون أكبر من 7 أيام. لا يمكن تعيين مهلة رؤية الرسالة إلى قيمة بعد وقت انتهاء الصلاحية. يجب تعيين visibility_timeout إلى قيمة أصغر من قيمة مدة البقاء.

max_messages
int

عدد صحيح يحدد الحد الأقصى لعدد الرسائل المراد استردادها من قائمة الانتظار.

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

المرتجعات

إرجاع مكرر رسالة لعناصر الرسالة التي تشبه الإملاء.

نوع الإرجاع

أمثلة

تلقي رسائل من قائمة الانتظار.


   # Receive messages one-by-one
   messages = queue.receive_messages()
   for msg in messages:
       print(msg.content)

   # Receive messages by batch
   messages = queue.receive_messages(messages_per_page=5)
   for msg_batch in messages.by_page():
       for msg in msg_batch:
           print(msg.content)
           queue.delete_message(msg)

send_message

إضافة رسالة جديدة إلى الجزء الخلفي من قائمة انتظار الرسائل.

تحدد مهلة الرؤية الوقت الذي ستكون فيه الرسالة غير مرئية. بعد انتهاء المهلة، ستصبح الرسالة مرئية. إذا لم يتم تحديد مهلة رؤية، يتم استخدام القيمة الافتراضية 0.

يحدد وقت بقاء الرسالة المدة التي ستبقى فيها الرسالة في قائمة الانتظار. سيتم حذف الرسالة من قائمة الانتظار عند انتهاء فترة البقاء.

إذا تم تعيين حقل مفتاح تشفير المفتاح على كائن الخدمة المحلي، فإن هذا الأسلوب سيقوم بتشفير المحتوى قبل التحميل.

send_message(content: object | None, *, visibility_timeout: int | None = None, time_to_live: int | None = None, **kwargs: Any) -> QueueMessage

المعلمات

content
Optional[object]
مطلوب

محتوى الرسالة. يتم تحديد النوع المسموح به بواسطة encode_function المعينة على الخدمة. الافتراضي هو str. يمكن أن يصل حجم الرسالة المشفرة إلى 64 كيلوبايت.

visibility_timeout
int

إذا لم يتم تحديدها، فإن القيمة الافتراضية هي 0. يحدد قيمة مهلة الرؤية الجديدة، بالثوان، بالنسبة إلى وقت الخادم. يجب أن تكون القيمة أكبر من أو تساوي 0، ولا يمكن أن تكون أكبر من 7 أيام. لا يمكن تعيين مهلة رؤية الرسالة إلى قيمة بعد وقت انتهاء الصلاحية. يجب تعيين visibility_timeout إلى قيمة أصغر من قيمة مدة البقاء.

time_to_live
int

يحدد الفاصل الزمني لفترة البقاء للرسالة، بالثوان. قد يكون وقت البقاء أي رقم موجب أو -1 للنهاية. إذا تم حذف هذه المعلمة، فإن مدة البقاء الافتراضية هي 7 أيام.

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

المرتجعات

QueueMessageعنصر. يتم أيضا ملء هذا الكائن بالمحتوى على الرغم من أنه لم يتم إرجاعه من الخدمة.

نوع الإرجاع

أمثلة

إرسال الرسائل.


   queue.send_message("message1")
   queue.send_message("message2", visibility_timeout=30)  # wait 30s before becoming visible
   queue.send_message("message3")
   queue.send_message("message4")
   queue.send_message("message5")

set_queue_access_policy

تعيين نهج الوصول المخزنة لقائمة الانتظار التي يمكن استخدامها مع توقيعات الوصول المشترك.

عند تعيين أذونات لقائمة انتظار، يتم استبدال الأذونات الموجودة. لتحديث أذونات قائمة الانتظار، اتصل get_queue_access_policy بإحضار جميع نهج الوصول المقترنة بقائمة الانتظار، وقم بتعديل نهج الوصول الذي ترغب في تغييره، ثم استدع هذه الدالة مع المجموعة الكاملة من البيانات لتنفيذ التحديث.

عند إنشاء نهج وصول مخزن في قائمة انتظار، قد يستغرق الأمر ما يصل إلى 30 ثانية حتى يصبح ساري المفعول. أثناء هذا الفاصل الزمني، سيطرح توقيع الوصول المشترك المقترن بنهج الوصول المخزن حتى يصبح نهج الوصول نشطا <xref:azure.storage.queue.HttpResponseError> .

set_queue_access_policy(signed_identifiers: Dict[str, AccessPolicy], **kwargs: Any) -> None

المعلمات

signed_identifiers
Dict[str, AccessPolicy]
مطلوب

نهج الوصول إلى SignedIdentifier لإقرانها بقائمة الانتظار. قد يحتوي هذا على ما يصل إلى 5 عناصر. سيقوم الإملاء الفارغ بمسح نهج الوصول المعينة على الخدمة.

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

أمثلة

تعيين نهج وصول في قائمة الانتظار.


   # Create an access policy
   from azure.storage.queue import AccessPolicy, QueueSasPermissions
   access_policy = AccessPolicy()
   access_policy.start = datetime.utcnow() - timedelta(hours=1)
   access_policy.expiry = datetime.utcnow() + timedelta(hours=1)
   access_policy.permission = QueueSasPermissions(read=True)
   identifiers = {'my-access-policy-id': access_policy}

   # Set the access policy
   queue.set_queue_access_policy(identifiers)

set_queue_metadata

تعيين بيانات التعريف المعرفة من قبل المستخدم في قائمة الانتظار المحددة.

ترتبط بيانات التعريف بقائمة الانتظار كأزواج قيمة الاسم.

set_queue_metadata(metadata: Dict[str, str] | None = None, **kwargs: Any) -> Dict[str, Any]

المعلمات

metadata
Optional[Dict[str, str]]
مطلوب

إملاء يحتوي على أزواج الاسم والقيمة لإقرانها بقائمة الانتظار كبيانات تعريف.

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

المرتجعات

قاموس لرؤوس الاستجابة.

نوع الإرجاع

أمثلة

تعيين بيانات التعريف في قائمة الانتظار.


   metadata = {'foo': 'val1', 'bar': 'val2', 'baz': 'val3'}
   queue.set_queue_metadata(metadata=metadata)

update_message

التحديثات مهلة رؤية الرسالة. يمكنك أيضا استخدام هذه العملية لتحديث محتويات الرسالة.

يمكن استخدام هذه العملية لتوسيع نطاق رسالة قائمة الانتظار باستمرار. يمكن أن تكون هذه الوظيفة مفيدة إذا كنت تريد أن "يستأجر" دور عامل رسالة قائمة انتظار. على سبيل المثال، إذا كان دور العامل يستدعي receive_messages ويدرك أنه يحتاج إلى مزيد من الوقت لمعالجة رسالة، فيمكنه توسيع نطاق عدم وضوح الرسالة باستمرار حتى تتم معالجتها. إذا فشل دور العامل أثناء المعالجة، فستصبح الرسالة مرئية مرة أخرى في النهاية ويمكن لدور عامل آخر معالجتها.

إذا تم تعيين حقل مفتاح تشفير المفتاح على كائن الخدمة المحلي، فإن هذا الأسلوب سيقوم بتشفير المحتوى قبل التحميل.

update_message(message: str | QueueMessage, pop_receipt: str | None = None, content: object | None = None, *, visibility_timeout: int | None = None, **kwargs: Any) -> QueueMessage

المعلمات

message
str أو QueueMessage
مطلوب

كائن الرسالة أو المعرف الذي يحدد الرسالة المراد تحديثها.

pop_receipt
str
مطلوب

تم إرجاع قيمة إيصال pop صالحة من استدعاء سابق إلى receive_messages العملية أو update_message .

content
Optional[object]
مطلوب

محتوى الرسالة. يتم تحديد النوع المسموح به بواسطة encode_function المعينة على الخدمة. الافتراضي هو str.

visibility_timeout
int

يحدد قيمة مهلة الرؤية الجديدة، بالثوان، بالنسبة إلى وقت الخادم. يجب أن تكون القيمة الجديدة أكبر من أو تساوي 0، ولا يمكن أن تكون أكبر من 7 أيام. لا يمكن تعيين مهلة رؤية الرسالة إلى قيمة بعد وقت انتهاء الصلاحية. يمكن تحديث الرسالة حتى يتم حذفها أو انتهاء صلاحيتها. كائن الرسالة أو معرف الرسالة الذي يحدد الرسالة المراد تحديثها.

timeout
int

تعيين المهلة من جانب الخادم للعملية بالثوان. لمزيد من التفاصيل، راجع https://learn.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-queue-service-operations. لا يتم تعقب هذه القيمة أو التحقق من صحتها على العميل. لتكوين مهلات الشبكة من جانب العميل، راجع هنا.

المرتجعات

QueueMessageعنصر. للراحة، يتم أيضا ملء هذا الكائن بالمحتوى، على الرغم من أنه لا يتم إرجاعه بواسطة الخدمة.

نوع الإرجاع

أمثلة

تحديث رسالة.


   # Send a message
   queue.send_message("update me")

   # Receive the message
   messages = queue.receive_messages()

   # Update the message
   list_result = next(messages)
   message = queue.update_message(
       list_result.id,
       pop_receipt=list_result.pop_receipt,
       visibility_timeout=0,
       content="updated")

السمات

api_version

إصدار واجهة برمجة تطبيقات التخزين المستخدمة للطلبات.

نوع الإرجاع

str

location_mode

وضع الموقع الذي يستخدمه العميل حاليا.

بشكل افتراضي، سيكون هذا "أساسي". تتضمن الخيارات "الأساسي" و"الثانوي".

نوع الإرجاع

str

primary_endpoint

عنوان URL الكامل لنقطة النهاية الأساسية.

نوع الإرجاع

str

primary_hostname

اسم مضيف نقطة النهاية الأساسية.

نوع الإرجاع

str

secondary_endpoint

عنوان URL لنقطة النهاية الثانوية الكاملة إذا تم تكوينه.

إذا لم يكن متوفرا، فسيتم رفع ValueError. لتحديد اسم مضيف ثانوي بشكل صريح، استخدم وسيطة الكلمة الأساسية secondary_hostname الاختيارية عند إنشاء مثيل.

نوع الإرجاع

str

استثناءات

secondary_hostname

اسم مضيف نقطة النهاية الثانوية.

إذا لم يكن متوفرا، فسيكون هذا بلا. لتحديد اسم مضيف ثانوي بشكل صريح، استخدم وسيطة الكلمة الأساسية secondary_hostname الاختيارية عند إنشاء مثيل.

نوع الإرجاع

url

عنوان URL الكامل لنقطة النهاية لهذا الكيان، بما في ذلك رمز SAS المميز إذا تم استخدامه.

قد تكون هذه إما نقطة النهاية الأساسية، أو نقطة النهاية الثانوية اعتمادا على الحالي location_mode. :returns: عنوان URL الكامل لنقطة النهاية لهذا الكيان، بما في ذلك رمز SAS المميز إذا تم استخدامه. :rtype: str