簡體   English   中英

Spring批處理和集成

[英]Spring batch and Integration

我是春天的初學者,我必須為學校做一個項目。 我可以使用Spring Batch和Integration進行哪種項目。 我知道我可以將文件寫入目錄,編寫,讀取和修改逗號分隔文件,但我不能描繪一個可以將這些技術結合起來的場景。

我自己在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 for Step:1,批處理作業每天下午5點通過Quartz調度程序觸發,Spring Integration for Step:2繼續輪詢目錄,一旦找到文件就將其轉移到銀行。

我還從Spring文檔中看到我可以對這些技術進行混搭,也就是說,我可以避免寫入臨時目錄並要求Spring Integration直接寫入銀行的SFTP服務器。

我能想到的其他實際例子:我有AT&T並訂購了自動付款,即他們每30天向我收費並保持我的互聯網和電話服務活躍。 我已經向AT&T提供了我的銀行信用卡詳細信息。 他們聚合所有要開帳單的信用卡(訂戶)並將數據發送到VISA或MASTERCARD,他們需要在特定時間每天收費作為批處理文件。 我希望你能提到我提到的第1步和第2步。 快樂學習!

但我無法想象一下我可以將這些技術結合起來的情景

好吧,讓我們來一個相當大的公司,需要大量的批量工作與彈簧集成,你可以設置一個系統

  • 管理批處理
  • 根據資源計划工作(例如在某些時間窗口運行批處理以不破壞在線業務)
  • 只需啟動/停止作業
  • 提供工作狀態視圖

實際上它只是

  • 調度
  • 報告
  • 管理的

通過許多企業消息概念,請參見http://www.eaipatterns.com/已經鏈接到http://www.springsource.org/spring-integration

對於你的范圍 - 學校項目 - 如果你真的有一些工作(3個或更多),那么你可以建立一個批量啟動工具,一個GUI(spring mvc),它提供按鈕來啟動/停止/監視/查看那些報告工作,但我認為這是一個非常大的項目,可能很容易跨越許多人周

有一個很好的例子,可以將SpringSource博主Dave Syer整合兩者(沒有雙關語):實際使用彈簧批和彈簧集成

讓我們暫時想象一下,您正在為健康維護組織(HMO)建立健康系統。 這樣的系統可能具有以下要求:

  1. 對於那些未在一年內接受過健康檢查的患者,請發送電子郵件和/或短信,提醒他們需要檢查。

  2. 為了鼓勵患者進行健康檢查,請在電子郵件或短信中提供“回復”功能,通知接待員致電預約。

  3. 對於那些需要定期隨訪的慢性病患者,也可以發送電子郵件或發短信給他們。

  4. Pester患者每周都要接受他們的爆破檢查,但是為了對健全的熱愛,並不是經常這樣。

顯然,這樣的健康系統會有一個數據庫來跟蹤患者,可能有這樣一個表:

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代碼的情況下編寫此應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM