Весенняя партия и интеграция

Я новичок в Spring, и мне нужно сделать проект для школы. Какой проект я могу сделать, чтобы использовать Spring Batch и Integration. Я знаю, что могу записывать файлы в каталоги, писать, читать и изменять файлы, разделенные запятыми, но я не могу представить сценарий, в котором я мог бы объединить эти технологии.


person nobo    schedule 22.11.2010    source источник


Ответы (4)


Я сам не эксперт по Spring, Spring Batch или Spring Integration, но я могу рассказать вам о практической задаче, которую мне пришлось выполнить в своей организации, чтобы использовать все это для требования.

Моя компания берет кредитную карту у наших клиентов, когда они регистрируются, и списывает их каждые 30 дней. Поэтому каждый день мы должны видеть, кто находится на 30-м дне, и автоматически продлевать им нашу услугу, взимая с них плату. Следовательно, я должен ежедневно отправлять данные в банки.

Шаг 1. Мне нужно было написать программу для получения сведений о кредитных картах клиентов, подлежащих оплате в этот день, из нашей защищенной базы данных с помощью пакетной программы и записи этого содержимого в определенном формате, желательном для банка, во временную расположение на сервере нашей компании в виде файла «.txt» (пример: /user/someuser/endofdaytransaction/dd-mm-yyyy.txt)

Шаг 2. Как только содержимое (dd-mm-yyyy.txt) станет доступным в этом каталоге (/user/oneworld/endofdaytransaction/), мне нужно будет подключиться к SFTP-серверу банка и передать файл в каталог, предоставленный нам банком.

Я использую Spring Batch для шага: 1, пакетное задание запускается через планировщик Quartz каждый день в 17:00 и Spring Integration для шага: 2, чтобы продолжать опрос каталога и, как только файл будет найден, передать его в банк.

Я также вижу из документов Spring, что могу сделать гибрид этих технологий, т. е. я могу избежать записи во временный каталог и попросить Spring Integration напрямую записать на SFTP-сервер банка.

Другой практический пример, который я мог бы придумать: у меня есть AT&T и я подписался на автоматическую оплату, т.е. они выставляют мне счета каждые 30 дней и поддерживают мой доступ в Интернет и телефонную связь. Я предоставил AT&T данные своей банковской кредитной карты. Они объединяют все кредитные карты (подписчики), для которых выставляется счет, и отправляют данные в VISA или MASTERCARD, которым необходимо выставлять счета, в виде пакетного файла каждый день в определенное время. Надеюсь, вы понимаете Шаг 1 и Шаг 2, о которых я упоминал. Приятного обучения!

person oneworld    schedule 29.06.2014
comment
Какую библиотеку вы использовали для загрузки файла на SFTP-сервер вашего банка? - person theprogrammer; 02.07.2021

но я не могу представить сценарий, в котором я могу совместить эти технологии

хорошо, давайте возьмем довольно крупную компанию, которой нужно много пакетных заданий с интеграцией Spring, вы можете настроить систему для

  • управлять пакетными заданиями
  • планировать задания в соответствии с ресурсами (например, запускать пакетные задания в определенные временные промежутки, чтобы не нарушать онлайн-бизнес)
  • просто запускать/останавливать задания
  • предоставлять просмотры статуса работы

на самом деле это просто

  • планирование
  • составление отчетов
  • управление

через многие концепции корпоративных сообщений см. http://www.eaipatterns.com/, ссылка на которые уже есть на http://www.springsource.org/spring-integration

для вашей области - школьный проект - и если у вас действительно есть несколько заданий (3 и более), вы можете создать инструмент пакетного запуска, графический интерфейс (spring mvc), который предоставляет кнопки для запуска/остановки/мониторинга/просмотра отчетов для тех рабочих мест, но я думаю, что это действительно большой проект, на который легко может уйти много человеко-недель.

person Michael Pralow    schedule 22.11.2010
comment
Администратор Spring Batch docs.spring.io/spring-batch-admin теперь доступен для управления пакетными заданиями с помощью графического интерфейса - person Anudeep Gade; 09.09.2015

Есть отличный пример интеграции двух (без каламбура) от блогера SpringSource Дэйва Сайера: ПРАКТИЧЕСКОЕ ИСПОЛЬЗОВАНИЕ SPRING BATCH И SPRING INTEGRATION

person Saish    schedule 09.02.2012

Давайте на мгновение представим, что вы строите систему оздоровления для организации по поддержанию здоровья (HMO). К такой системе могут предъявляться следующие требования:

  1. Для тех пациентов, которые не проходили оздоровительный осмотр более года, отправьте электронное письмо и/или текстовое сообщение с напоминанием о том, что им необходимо пройти обследование.

  2. Чтобы побудить пациентов проходить медицинские осмотры, разрешите функцию «ответить» в электронном или текстовом сообщении, которое уведомляет администратора о том, что нужно позвонить, чтобы записаться на прием.

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

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

Очевидно, что такая оздоровительная система должна иметь базу данных для отслеживания пациентов, в которой может быть такая таблица:

CREATE TABLE patient
(
    patient_id  INTEGER,
    first_name  VARCHAR2(255) NOT NULL,
    last_name   VARCHAR2(255) NOT NULL,
    last_checkup_date   DATE,
    follow_up_days  INTEGER
    email_address   VARCHAR2(255),
    mobile_nbr      VARCHAR2(255),
    last_notify_date DATE,
    PRIMARY KEY(patient_id)
);

Для обмена текстовыми сообщениями это идеальный случай для JMS. Вы можете использовать HornetQ, RabbitMQ, ActiveMQ или множество других.

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

person Brad    schedule 27.09.2013