для меня весенний пакет, хотя я не использую itemReader и itemWriter? - PullRequest
1 голос
/ 23 января 2012

новичок весенней партии : у меня есть серия партий, которые

  • чтение все новые записи (с момента последнего выполнения) из некоторых таблиц sql
  • загрузить все новые записи в hadoop
  • запустить серию заданий сокращения (свиноводства) на всех данных (старых и новых)
  • загрузить все вывод в локальный и запустить какую-то другую локальную обработку на всех выходных

Дело в том, что у меня нет очевидного «элемента» - я не хочу относиться к конкретным строкам текста в моих данных, я работаю со всем этим как с одним большим куском и не хочу никакого интервалы коммитов и прочее ...

Тем не менее, я хочу, чтобы все эти шаги были слабо связаны - как, например, шаг a + b + c может успешно выполняться в течение нескольких дней и накапливать обработанные данные, в то время как шаг d продолжает сбой, а затем, когда он, наконец, завершается успешно, он будет читать и обработать все выходные данные предыдущих шагов.

ТАК: мой "элемент" - это вымышленный "рабочий элемент", который будет означать все новые данные? самостоятельно поддерживать ряд очередей и передавать эти вымышленные рабочие элементы между ними?

спасибо!

Ответы [ 2 ]

5 голосов
/ 26 февраля 2012

люди всегда предполагают, что единственное использование пружинной партии действительно только для обработки кусков.это огромная особенность, но упускается из виду ее видимость обработки и контроля заданий.

дают 5 человек одинаковую задачу без подпружиненной партии, и они собираются реализовать управление потоком и видимость по-своему.дайте 5 людям одну и ту же задачу и весенний пакет, и вы можете получить пользовательские тасклеты, выполненные по-разному, но получение доступа к метаданным, запуск и остановка заданий будут согласованными.с моей точки зрения, это отличный инструмент для управления работой.если у вас уже есть написанные задания, вы можете реализовать их как пользовательские тасклеты, если не хотите переписывать их для соответствия парадигме «item».вы все равно увидите преимущества.

2 голосов
/ 23 января 2012

Я не вижу проблемы.Мне кажется, что ваш сценарий похож на классическое приложение Spring Batch.

  • чтение всех новых записей (с момента последнего выполнения) из некоторых таблиц sql

Здесь элемент представляет собой запись

  • загрузить все новые записи в hadoop

То же самое здесь

  • запустить серию заданий уменьшения (свинования) для всех данных (старых и новых)

Похоже на StepListener или ChunkListener

  • загрузить все выходные данные в локальную и запустить некоторую другую локальную обработку всех выходных данных

Это следующий шаг.


Единственная проблема, которую я вижу, это отсутствие у вас доменных объектов для ваших записей.Но даже тогда вы можете работать с картами или массивами, все еще используя ItemReaders и ItemWriters.

...