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