Мне интересно, можно ли отправить посредническое сообщение в очередь / тему, где сообщение уже находится в отложенном состоянии?
Я спрашиваю об этом, потому что в настоящее время у меня есть процесс, который выполняетследующее ...
- Процесс начинается, и сообщение с посредником отправляется в очередь (при этом запускается функция, которая записывает тело сообщения как сущность в хранилище таблицы со статусом «Обработка»).
- В процессе выполняется дополнительная работа
- Если мы дойдем до конца процесса без каких-либо проблем, другое очередное сообщение отправляется в очередь с сообщением о завершении (это вызывает ту же функциюэто обновляет сущность в хранилище таблиц со статусом «Завершено»).
Хотя этот метод в основном работает, он кажется неуклюжим и хрупким.Мне бы очень хотелось иметь возможность отправить сообщение в очередь, а затем сделать последний шаг, чтобы сделать сообщение видимым в очереди, чтобы оно могло использоваться функцией (Durable Function).
Я думал о настройкеScheduledEnqueueTimeUtc
, но я не могу гарантировать, когда процесс завершится (я думаю, здесь наихудший сценарий), поэтому я не уверен, как долго его устанавливать.
Я также посмотрел на *Опция 1018 * для BrokeredMessage
, но, похоже, это может быть установлено только с приемника и изначально не может быть в отложенном состоянии.
Возможно ли то, что я пытаюсь сделать с помощью сообщений брокера Service Bus?Могу ли я установить время запланированной постановки в очередь на какое-то смехотворно долгое время (например, 2 часа), и если оно достигает этого времени, оно автоматически истекает и перемещается в очередь мертвых писем?Должен ли я отправлять начальное сообщение в очередь мертвых писем, а затем, когда процесс будет завершен, извлечь его и отправить повторно?
Кто-нибудь имел опыт реализации такого процесса ... отправить сообщение запуска иобрабатывать сообщение только после получения уведомления о завершении?Мне нужно, чтобы это было как можно более надежным, так как я имею дело с финансовыми транзакциями в этом процессе.
Надеюсь, мое объяснение имеет смысл.