Нам нужно иметь возможность работать с результирующим набором записей хранимой процедуры. Обработка будет одинаковой для каждой отдельной записи, мы хотели бы иметь многопоточность и не сталкиваться с какой-либо блокировкой. Вы бы порекомендовали здесь актера или состояние?
Каков наилучший способ написания пакетного процессора с использованием Service Fabric?
Ответы (1)
Краткий ответ без дополнительной информации:
Создайте службу с отслеживанием состояния для получения запросов на обработку наборов записей (включите набор записей, который необходимо обработать, или процедуру получения набора записей, или сохраните его где-нибудь, чтобы его можно было вызвать). Затем внутри службы с отслеживанием состояния выполните итерацию по набору записей, разбирая обработку для отдельных субъектов. Вы можете генерировать случайные идентификаторы, если вам не важно, сколько участников, или вы можете ограничить обработку конечным набором. Если вы выберете первое, вам придется подумать о масштабе — сколько процессоров может безопасно работать одновременно без масштабирования? Если вы используете последний вариант, вам понадобится какая-то обработка очереди или инфраструктура pub/sub в акторах, чтобы вы могли разделить работу и убедиться, что все сделано.