Мы строим систему для предварительного расчета всех цен для всех наших клиентов. Основываясь на некотором триггере (например, изменении прайс-листа) в нашей ERP, мы поместим все затронутые номера клиентов в очередь, а функция Azure, прослушивающая эту очередь, пересчитает цены для этого конкретного c клиента.
Пример: изменение выполняется в прайс-листе, и пользователь нажимает кнопку Сохранить. Это изменение затронуло 3000 клиентов и добавлено в очередь расчета. Если расчет занимает две секунды, и мы можем сделать 10 вычислений параллельно, цены последнего клиента будут сделаны через 3000 * 2/10 = 600 секунд. Пока номер клиента находится в очереди, пользователь вносит другое изменение и нажимает кнопку Сохранить. В этом случае мы хотели бы исключить добавление всех номеров клиентов, которые уже присутствуют в очереди.
Вопрос: Azure В очереди служебной шины есть функция обнаружения дубликатов, но она основана на времени. Существуют ли другие способы избежать добавления сообщения в очередь, если другое сообщение с таким же содержимым уже находится в очереди?
Примечание: все остальные ресурсы находятся в Azure, поэтому мы смотрим только на Azure основанные очереди и решения для событий.