Чтение сообщения в очереди хранения Azure несколько раз
Контекст: у меня есть очередь хранилища Azure, которая используется в качестве входной очереди для функции запуска очереди. Таким образом, всякий раз, когда сообщение добавляется в очередь, запускается какая-то функция X и запускается. Я хочу проверить, что сообщение было успешно помещено в очередь и использовано. Как я могу сделать это только из очереди (при условии, что у меня нет видимости в моей функции X, и я не могу изменить настройки для функции триггера очереди)? Для дальнейшего разбить этот вопрос:
- После того, как функция триггера очереди выведет сообщение из очереди, останется ли сообщение доступным для чтения из него при тестировании? Если да, как я могу получить к нему доступ?
- Поскольку здесь есть условие гонки, если я уберу сообщение из очереди при тестировании до того, как это сделает функция триггера очереди, как это помешает работе триггера очереди? Возможно ли исключить сообщение из очереди при тестировании, но в то же время, иметь ли оно доступное для Queue Trigger, чтобы удалить его из очереди и запустить мою функцию X без помех вообще?
- В итоге у меня есть сообщение об очереди в очереди хранения Azure, которое я хочу прочитать дважды из двух разных источников, без помех между этими двумя операциями. Это возможно и поддерживается? Если да, как я могу это сделать?
Спасибо!
1 ответ
Я не думаю, что то, как вы пытаетесь это сделать, сработает. Вы можете пройти часть пути, используя Peek Messages для чтения сообщений в очереди, не удаляя их из очереди, но если функция до вас доберется до сообщения, вы никогда не увидите его.
Однако вы можете получить необходимую информацию с помощью ведения журнала Storage Analytics для отслеживания активности очереди или с помощью разделов служебной шины вместо очереди, чтобы ваши сообщения могли иметь несколько подписчиков.