Я создаю проект webservice + servicebus, где пользователь может сделать что-то вроде
public void ExecuteLongProcess(DateTime fromDate,string aggregateId){}
Этот метод немедленно возвращается, но отправляет по шине запрос на операцию.
Мои проблемы начинаются, когда несколько пользователей запрашивают длительный процесс по одному и тому же aggregateId, когда другой уже запущен.
Решением, о котором я думаю, является Задача, которая выполняется непрерывно и ищет в Queue<LongProcessTask>
операцию, которая должна быть выполнена, поэтому я запускаю только один процесс за раз, или будущая реализация будет состоять из нескольких процессов, если другой aggregateId.
Таким образом, я не перекрываю длительный процесс над одним и тем же агрегатом.
Другие идеи?