簡體   English   中英

批處理和函數編程

[英]Batch processing and functional programming

作為Java開發人員,我習慣使用Spring Batch進行批處理,通常使用流式庫來導出大型XML文件,例如StAX。

我現在正在開發Scala應用程序,並想知道是否有任何框架,工具或指南來實現批處理。

我的Scala應用程序使用了Cake Pattern,我不知道如何將它與SpringBatch集成。 另外,我想遵循Functional programming in Scala中的Functional programming in Scala描述的指南,並嘗試使用IO monad之類的東西保持功能純度......

我知道這是一個懸而未決的問題,但我從未讀過任何關於此事的內容......

有人已經在這里實現了功能批處理嗎? 它是如何工作的? 我應該有一個main在IO monad中創建一個批處理操作並運行它嗎? 是否有任何工具或指南可以幫助,監控或處理可重啟性,就像我們在Java中使用Spring Batch一樣。 你在Scala中使用Spring Batch嗎? 如何處理集成部分,例如等待JMS / AMQP消息開始生成XML的處理?

歡迎任何關於子噴氣機的反饋

你沒有提到你用Scala開發什么樣的應用程序,所以我會在這里瘋狂猜測並假設你正在做一個服務器端。 進一步瘋狂猜測讓我們說你正在使用Akka ......因為你正在使用它,不是嗎? :)

在這種情況下,我猜你正在尋找的是Akka Quartz Scheduler ,官方Quartz擴展和Akka中cron風格調度的實用程序。 我自己沒有嘗試過,但根據你的要求,似乎Akka +這個模塊非常合適。 考慮到Akka已經提供了鈎子來處理失敗的actor的可重啟性,並且我認為通過利用構建到actor中的生命周期回調來添加對批處理的監視並不困難。

關於與JMS / AMQP消息傳遞的交互,您可以使用Akka Camel模塊 ,該模塊支持通過許多協議(包括JMS)發送和接收消息。 使用此模塊,您可以讓消費者actor從某個JMS端點接收消息,並從那里觸發您想要的任何進程,可能會轉發或向負責該進程的actor發送新消息。 如果通過cron樣式計時器或傳入消息觸發進程,則可以重用相同的actor來完成任務。

暫無
暫無

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

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