我现在有一个应用程序,它是一个管道设计。在第一阶段,它将一些数据和文件读入 Stream。有一些中间阶段对数据流进行处理。然后是最后一个阶段,将流写到某个地方。这一切都是连续发生的,一个阶段完成,然后移交到下一个阶段。
这一切都很好,但现在数据量开始变得相当大(可能有数百 GB)。所以我认为我需要做一些事情来缓解这种情况。我最初的想法是我正在寻找一些反馈(作为一个独立的开发人员,我没有任何地方可以反弹这个想法)。
我正在考虑创建一个并行管道。从管道开始的对象将创建所有阶段并在其自己的线程中启动每个阶段。当第一阶段使流达到一定大小时,它将将该流传递到下一个阶段进行处理并启动自己的新流以继续填充。这里的想法是最后阶段将关闭流,因为第一阶段正在构建一个新流,因此我的内存使用量将保持较低。
所以问题:1)对这个设计的方向有什么高层次的想法吗?2)有没有一种更简单的方法,你能想到可能适用于这里?3)那里有什么东西可以做这样的事情我可以重复使用(不是我必须购买的产品)?
谢谢,
迈克D