我對AKKA比較陌生,所以想要學習基礎知識。在AKKA-Streams中使用動態水槽目的地?
我的用例是不斷從JMS隊列讀取消息並將每個消息輸出到新文件。
我已經得到了基本設置與工作:
Source<String, NotUsed> jmsSource = JmsSource
.textSource(JmsSourceSettings
.create(connectionFactory)
.withQueue("myQueue")
.withBufferSize(10));
Sink<ByteString, CompletionStage<IOResult>> fileSink = FileIO.toFile(new
File("random.txt"));
final Flow<String, ByteString, NotUsed> flow = Flow.fromFunction((String n) -> ByteString.fromString(n));
final RunnableGraph<NotUsed> runnable = jmsSource.via(flow).to(fileSink);
runnable.run(materializer);
但我想要的文件名是動態的(而不是硬編碼「random.txt」),它應該取決於被改變隊列中每條消息的內容(我當然可以在隊列中選擇,但是如何在fileSink中設置該名稱?)。如何最好地設置?
每當我回到阿卡流,我似乎總是想要這個。我一旦過去就解決了它,但我不記得如何。我想我從Akka Http獲得了一些啓發。 – Steiny
您是否曾經能夠在此找出解決方案? – Scalahansolo
可悲的是。我很驚訝沒有簡單的方法來做這件事,因爲它似乎是這樣一個基本特徵。我幾乎可以肯定,有一些我錯過了......但對這個問題的迴應表明我可能不得不爲此編寫一些自定義處理,並且幾乎告訴我這不是這種類型使用的正確實現 - 案件(希望我錯了)。 –