2015-09-27 4 views
1

У меня есть прецедент для реализации. Это в основном рабочий вариант использования. Ниже требованиеActiviti vs Spring batch

  1. Извлечения и импорт данных из внешнего БД на внутреннюю БД

  2. Сделать это импортированные данные в различные форматы и поставить его на несколько внешних системы и вызывать некоторый сценарий там. Внешними интерфейсами являются SFTP, SOAP, JDBC, Python над CORBA. Существует около 14 внешних систем с одним из этих интерфейсов.

  3. операции интерфейса выполняются примерно 15 шагов, с возможностью запуска несколько шагов в параллельном

  4. Эти шаги должны быть настраиваемыми. то есть, конкретный поток может выполнить 10 из этих 15 шагов, а другой поток выполняет 15 из 15 шагов

  5. должны иметь возможность перезагрузить каждый шаг по отдельности или перезапуск от конкретного шага

  6. Есть несколько шагов, которые руководство и завершение ручного шага должны вызывать следующий шаг

Объем данных не такой большой. Общий размер данных составляет около 400 тыс. Записей. Но этот процесс выполняется примерно за 30 тыс. Записей за раз. Время для разработки меньше, и мы ищем легкий вес, легко обучаемый и реализующий решение.

Мы ищем интегрированные решения Spring или Spring.

Решения мы рассмотрели являются

Для процесса: Activiti, Spring Batch

Для интерфейсов: Spring Integration

Мой вопрос 1) Может SPRING пакет, рассмотренный для управления видом использования вида использования? Я не думаю, что это подходящий вариант использования Spring Batch, но поскольку его простой и простой в использовании, он искал свою область действия. Мы рассмотрели возможность взаимодействия интерфейсов как каждого шага в пакетном задании, так и внутри этой тарелки провести интеграцию с Spring для внешних интерфейсов, с небольшими проблемами, насколько я понимаю,

a) Конфигурация динамического шага может быть выполнена с помощью конфигурации Java, но насколько это гибко и рекомендуется?

б) обработка Ручная шаг не представляется возможным в Spring Batch

Есть ли работа вокруг этого? Существуют ли какие-либо другие проблемы или последствия для этого?

2) Activiti похоже на решение. Можете ли вы предоставить некоторые отзывы об Activiti с интеграцией Spring и Spring для этого варианта использования и простотой его реализации? И поддержка Activiti

3) Могут ли рабочие процессы Activiti перезапускаться из определенной задачи? Можно ли отменить задачу?

Приветствую любые предложения!

+0

Я предлагаю вам использовать Activiti для рабочих процессов, он имеет легкую конфигурацию с Spring Core и удобен в использовании. – Spartan

+0

IMO вам следует искать решения для планирования работы. Есть несколько хороших альтернатив с открытым исходным кодом, и я думаю, что в конечном итоге дополнительные затраты на установку рассчитываются с точки зрения улучшения возможностей мониторинга. –

ответ

0

1) Для управления рабочими процессами Activiti станет отличным выбором. Они создали действительно хороший механизм процесса, который должен соответствовать вашим потребностям для делегирования ваших задач, а также для вызова вашей пользовательской логики. Более того, он полностью основан на Spring Framework, поэтому интеграция с вашей логикой будет простой.

2) Я предоставил то же самое в первом ответе.

3) Нет, вам нужно будет создать новый рабочий процесс для этого и Да !, задача может быть отброшена.