Изменения документа Инициализация процесса
Редактировал(а) Alexandr Fokin 2024/06/12 15:27
<
>
отредактировано Alexandr Fokin
на 2024/01/11 14:25
на 2024/01/11 14:25
отредактировано Alexandr Fokin
на 2024/01/13 12:43
на 2024/01/13 12:43
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -74,13 +74,20 @@ 74 74 |(% style="width:177px" %)Инициализация, привязанная к дате.|(% style="width:993px" %)Обработчик привязан к конкретной дате и рассматривает некоторый ограниченный набор, например одни сутки относительно указанной даты. 75 75 Таким образом мы явно ограничиваем блок данных. Но нужно учесть сценарии с возникновением ошибки, т.к. следующее срабатывание уже будет на основе новой даты. 76 76 |(% style="width:177px" %)Перебор всего сета доменных сущностей.|(% style="width:993px" %)((( 77 -Необходимое условие: Наличие способа перебрать данные сета данных. 77 +|(% style="width:232px" %) |(% style="width:826px" %) 78 +|(% style="width:232px" %)Пагинация|(% style="width:826px" %)Через страницы или через offset 79 +|(% style="width:232px" %)Параллелизм|(% style="width:826px" %) 80 +|(% style="width:232px" %)Фильтрация сета|(% style="width:826px" %) 81 +|(% style="width:232px" %) |(% style="width:826px" %) 82 + 83 + 84 +\\\\Необходимое условие: Наличие способа перебрать данные сета данных. 78 78 Вариант 1: Если перебираем записи без использования параллелизма, то нам достаточно организовать некоторую пагинацию и последовательно идти, обрабатывая подходящие для запуска процесса строки. 79 79 \\Вариант 2: 80 80 Если мы уверены, что доменные объекты не удаляются, то мы можем отсортировать их по дате создания и первичному ключу (Если есть уникальный автоинкреметный числовой ключ, то можно использовать его). 81 81 Таким образом мы получим детерминированные страницы данных, которые даже можно обрабатывать параллельно. 82 82 Невозможно выполнить, если допускается удаление объектов т.к. оно может изменить данные в страницах. 83 -Либо можно прикинуть вариант, когда мы используем блокировку доменных объектов через БД, таким образом в каждом обрабатываем батче (в один момент времени) будет уникальный набор доменных объектов, и если один и тот же объект попадет в разные батчи, то в первом случае он обработается, а во втором он будет отброшен. 90 +Либо можно прикинуть вариант, когда мы используем блокировку доменных объектов через БД, таким образом в каждом обрабатываем батче (в один момент времени) будет уникальный набор доменных объектов, и если один и тот же объект попадет в разные батчи, то в первом случае он обработается, а во втором он будет отброшен (есть вероятность, что некоторые строки, существовавшие на момент начала операции, не попадут в выборку). 84 84 85 85 Вариант 4: 86 86 Если кол-во записей не очень велико и мы можем без проблем полностью уместить сет всех ключей в оперативной памяти.