Можно ли применить транзакцию как к очереди Azure, так и к таблице Azure? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть последовательность из четырех шагов, которую я хочу вставить в транзакцию.

1) Получение сообщения из очереди Azure в WebJob

2) Выполните очень сложную работу, включая запуск GIT в фоновом режиме.

3) Обрабатывает некоторые данные из таблиц Azure, записывая результат в другую таблицу Azure.

4) Нажмите уведомление для следующего рабочего процесса через очередь Azure.

Я хочу, чтобы все это было транзакционным, чтобы любой сбой не позволял навсегда удалить сообщение из первого шага. Это возможно?

1 Ответ

0 голосов
/ 05 ноября 2018

Azure не поддерживает это. Также, как правило, невозможно добиться однократной доставки сообщений очереди.

Вероятно, лучшее решение для вас - использовать хотя бы раз доставку (по умолчанию) и сделать обработку сообщений идемпотентной. Это означает, что обработчик сообщений должен определить, было ли сообщение уже обработано. Это можно сделать, проверив таблицы Azure, чтобы убедиться, что результаты уже есть.

...