我想创建一个基于管道和过滤器的数据处理程序,它应该像这样操作传入的数据集,但不一定限于:
源管道(可能是来自数据库的数据集)<-sink-source-> 过滤器(添加一个附加字段)<-sink-source-> 过滤器(处理更多数据/删除,即使数据集无效)
我知道这种架构在 C/C++ 中的样子。但是考虑到 C++11 的功能方面带来的所有好处,我希望这项任务可以以一种优雅的方式完成,以便它能够:
- 轻松扩展并在多线程环境中使用它(例如,通过将过滤器任务作为 lambda 函数执行,从而可能至少避免一些线程处理)
- 在运行时轻松添加和删除过滤器
- 懒惰地处理输入流