Spring XD: как решить, когда использовать потоки или пакетные задания?

В настоящее время мы разрабатываем приложение, которое читает файлы из файловой системы/ftp/http и загружает эти файлы в mongodb. После этого мы хотим проанализировать эти файлы и записать проанализированные документы в mongodb. Требования к этому процессу:

  1. Загрузка и анализ в режиме реального времени.
  2. Обработка сбоев и перезапуск процесса.
  3. Возможность повторного анализа файлов.

Как правильно организовать этот процесс в Spring XD? В каких случаях мы должны использовать потоки или пакетные задания? Если кто-нибудь может рассказать о лучших методах использования потоков вместо пакетных заданий и наоборот, это очень ценится.


person Anton Semahko    schedule 24.02.2015    source источник


Ответы (1)


По моему опыту, для загрузки, анализа и хранения в реальном времени (mongodb в вашем случае) лучше всего использовать потоки. причина в том, что вы на самом деле не хотите запускать и обрабатывать задания с точки зрения того, сколько раз они должны запускаться в минутах/часах и так далее...

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

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

person milonimrod    schedule 25.02.2015