2017-10-14 62 views
0

我有一個隊列,其中某些其他應用程序將放置消息,而我的應用程序所做的只是輪詢隊列並獲取所有消息並轉換爲其他對象並保留在數據庫中。 因此,我有兩種方法來處理這個問題。1.)使用spring scheduler並每隔5秒輪詢所有消息,然後使用java 8的並行流來保存數據庫,因爲所有流都是獨立的。 2.)有人建議使用spring批處理,但運氣不好,對於使用spring批處理沒有足夠的解釋。Java 8並行流和彈簧批處理之間的比較

你可以請一些建議和解釋來幫助我,比如哪一個可以有用和更好?

+0

標題與你在問題中描述的實際事物有什麼聯繫? – Eugene

+0

它是連接,比較春天批處理並行處理或使用schedular和java 8並行流。 –

回答

0

我認爲你已經理解了選項1.對於使用spring批處理的選項-2找到下面的解釋。

因爲您使用的是彈簧,所以您可以使用彈簧批量解決方案。因爲您的所有步驟都將得到明確維護,您可以使用並行和頁面大小。擴大你的表現。

  1. 讀者:讀您的隊列
  2. 處理器:處理你的數據
  3. 作家:寫你的數據庫在這裏你可以提到你的批量大小。

您可以有多個步驟,或者從多個來源(儘管您只有一個隊列可以讀取),多個處理器以及這些操作的作者和偵聽器中進行讀取。例如您可以讓偵聽器從隊列中偵聽以進行讀取。 有很多配置你會發現有用的在這link

當然有一個非常好的文檔和支持spring批處理。

但即使我自己是春天的粉絲,如果你的是非常簡單的讀寫應用程序,你不想使用另一個框架,你可能不會使用春天批處理。

+0

似乎對於簡單的讀寫操作來說,spring批處理框架可能並不適合。 –

+0

正確,對於簡單的讀寫操作,您可能不想過度設計。對於基於規則的處理,多步驟操作和複雜的批處理,彈簧批次非常簡單,並且具有良好的維護能力。 – surya

0

對於簡單操作,不需要使用彈簧批次。