我正在研究非阻塞I/O,因为我在使用Akka和Play,如果可能的话,在这种情况下,避免阻塞是一个不好的主意,但我无法将其与我的用例结合起来:
我想通过管道流式传输文件,在其中应用上述每个步骤,并最终在不阻塞的情况下持久化数据。
如果需要代码,我可以轻松提供,但我希望找到一个通用级别的解决方案:当我依赖使用java.io的库时该怎么办?
- 从网络获取文件(这里有使用nio的替代方案,但现在我正在使用URL.openStream)
- 使用BouncyCastle解密文件(这里我只能使用InputStream)
- 使用标准Java GZIP解压文件(仅限于InputStream)
- 读取文件中的每一行,它是一个基于位置的平面文件,并转换为Case类(这里我对读取方法没有限制,现在是scalax.io.Resource)
- 使用Slick / JDBC进行持久化(不确定JDBC是否是阻塞的)
我想通过管道流式传输文件,在其中应用上述每个步骤,并最终在不阻塞的情况下持久化数据。
如果需要代码,我可以轻松提供,但我希望找到一个通用级别的解决方案:当我依赖使用java.io的库时该怎么办?