Я использую Azure среды и разработки в .NETУправление несколькими Azure Service Bus очередями одновременно
Я бегу веб-приложение (ClientApp), который принимает данные клиента, чтобы выполнить ряд расчетов. Расчеты являются высокопроизводительными, поэтому они работают в отдельном веб-приложении (CalcApp).
В настоящее время ClientApp отправляет запрос вычисления CalcApp. Запросы от каждого клиента помещаются в общую очередь и запускаются по одному, FIFO. Моя цель - создать отдельные очереди для каждого клиента и выполнить несколько вычислений одновременно.
Я собираюсь использовать очереди Azure Service Bus для этого. На ClientApp служебная шина проверит наличие существующей очереди для этого клиента и при необходимости создаст ее. В CalcApp приложение будет периодически проверять существующие очереди. Если он найдет новую очередь, то он создаст новый QueueClient, который использует функции OnMessageAsync() и RunCalculationsAsync() в качестве функции обратного вызова.
Возможно ли это или даже хорошая идея?
Я все еще способен обрабатывать дублирующее обнаружение с помощью этого шаблона? Возможно, клиент будет очень нетерпелив, запустив кнопку расчета. – clenard
В двух экземплярах я предполагаю, что вы имеете в виду, что пользователь на конкретном клиенте запросил вычисления более одного раза, и более чем одно сообщение для одних и тех же вещей отправляется в очередь. Azure имеет двойное обнаружение, которое можно настроить. Кроме того, вы можете использовать постоянное хранилище, чтобы узнать, была ли эта задача уже выполнена. Вы можете создать таблицу SQL, DocumentDB и т. Д., Которая проверяет это условие в начале процесса. В конце процесса отметьте это значение, чтобы следующий потребитель, который должен обработать, знает, что это уже сделано. – DanielG
Информация о локальном обнаружении дубликатов: http://blog.iquestgroup.com/en/windows-azure-service-bus-duplicate-detection/#.Vnl7CblIjmF – DanielG