Как отслеживать состояние процесса вложенных объектов - PullRequest
4 голосов
/ 30 апреля 2019

Я работаю над настройкой задания, которое обрабатывает следующие структуры данных:

class A { long id; List<B> bList; }
class B { long id; list<C> cList; }
class C { long id; }

На данный момент я настроил задание с одним шагом, содержащим:

  • ItemReader<C>: прочитайте A & B и объедините все их C в список. Возвращайте по одному
  • ItemProcessor<C, C>
  • ItemWriter<Identifiable> (реализует long getId();
  • SkipListener<Identifiable, Identifiable>

Задание обрабатывает элементы C и записывает состояние обработки каждого элемента в таблицу базы данных.

Тем не менее, Я хотел бы обработать элементы как это:

  1. Для каждого А, обработайте его Б. Напишите в таблицу, что A - IN_PROGRESS
  2. Для каждого B, обработайте его. Напишите в таблицу, что B - IN_PROGRESS
  3. Обработать каждый C и записать в таблицу, что C - IN_PROGRESS-> COMPLETED / FAILURE
  4. Все C обрабатываются. Если все ЗАВЕРШЕНО, напишите в таблицу, что B ЗАВЕРШЕНО
  5. Все Б обрабатываются. Если все ЗАВЕРШЕНО, запишите в таблицу, что А завершено.

Как я собираюсь сделать это в Spring Batch?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...