Прослушать лазурное сообщение очереди от 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, шаги для вашего кода, как показано ниже.

  1. Получить длину очереди, чтобы судить об обработке или подождать минуту
  2. Если длина очереди больше 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, как показано ниже, пожалуйста, обратитесь к этому руководству.

Надеюсь, поможет.

Другие вопросы по тегам