Стратегия повторного запуска очереди шины обслуживания: время ожидания приложения WCF из-за длительных попыток
У нас есть одна служба, которая помещает данные в очередь служебной шины. Для этого реализована стратегия повторных попыток. Но, согласно команде Windows Azure, очередь может уменьшаться на 1-3 минуты. Таким образом, у нас должна быть стратегия повторов, которая должна длиться более 3 минут
Если мы повторим попытку в течение 3 минут, то время ожидания для клиента, ожидающего ответа, будет равно 60 секундам. Если мы увеличим время ожидания, клиент должен ждать 3 минуты в случае сбоя.
Как лучше всего реализовать этот сценарий?
a. Should we keep client waiting? which will not be good experience for Client.
b. Should we keep timeout same , but then client will retry and we will have duplicate records?
Предложения?
1 ответ
Это общий сценарий и одно из основных правил, которым необходимо следовать: нельзя допускать ожидания любого клиента.
Итак, согласно моему пониманию и предложению, вы можете сделать следующее: 1. Проверьте, есть ли запрос в очереди. 2. Если 1 истинно, не повторять 3. Если 1 ложно, повторить
Также тайм-аут будет хорошим исключением, которое может быть выдано клиенту или любому дружественному пользователю сообщению (для этого вам потребуется новый подход).
Суть в том, что клиент должен знать все, если он ожидает, или он находится вне очереди, или если он находится в очереди, то только вы можете создать надежное и удобное приложение