使用Akka流从迭代器创建源流时如何进行清理?

时间:2019-11-26 15:40:13

标签: scala akka slick akka-stream

我想用JDBC ResultSet创建一个Akka Source流,也许用fromIterator
(我知道Alpakka为SlikSession提供了这样的源,但我没有选择从旧式DataSource连接池创建Alpakka源流的选择,而我想共享相同的连接Akka流和一些旧的普通SQL查询的存储池。
我找到了问题Stream records from DataBase using Akka Stream的答案
我剩下的唯一问题是:如何清理数据源?像关闭ResultSet一样?
据说总是关闭资源是个好习惯。

1 个答案:

答案 0 :(得分:2)

Source.unfoldResource是您的朋友,请参见https://doc.akka.io/docs/akka/current/stream/operators/Source/unfoldResource.html#source-unfoldresource此处的文档

它接受三种功能,一种是打开资源,一种是提取要发射的下一个元素,一种是在完成或流失败时关闭资源等。