Прослушать лазурное сообщение очереди от python для веб-задания
Я пытаюсь прослушать лазурную очередь из рабочей роли в Python. Есть ли способ написать функцию, которая будет запускаться только при поступлении нового сообщения? код шаблона с помощью инструментов Python для Visual Studio:
if __name__ == '__main__':
while True:
#
# Write your worker process here.
#
# You will probably want to call a blocking function such as
# bus_service.receive_queue_message('queue name', timeout=seconds)
# to avoid consuming 100% CPU time while your worker has no work.
#
sleep(1.0)
я могу видеть, что для службы бу есть функция прослушивания, но я не мог найти одну для API очереди
1 ответ
Пожалуйста, следуйте инструкциям для хранилища очередей Azure в Python, шаги для вашего кода, как показано ниже.
- Получить длину очереди, чтобы судить об обработке или подождать минуту
- Если длина очереди больше 0, удалите очередь или просто посмотрите сообщения для обработки.
Вот код
# Step 1: Get the count of messages in a queue
metadata = queue_service.get_queue_metadata('taskqueue')
count = metadata.approximate_message_count
if count > 0:
# Step 2: Process messages
# Dequeue messages
messages = queue_service.get_messages('taskqueue')
# Or peek messages, `messages = queue_service.peek_messages('taskqueue')`
for message in messages:
print(message.content) # process message like print
queue_service.delete_message('taskqueue', message.id, message.pop_receipt)
sleep(1.0)
Между тем, просто порекомендуйте, а не веб-заданием, вы можете использовать приложения-функции Azure с триггером Queue Storage в Python, как показано ниже, пожалуйста, обратитесь к этому руководству.
Надеюсь, поможет.