流水线的五大元素
更新时间: 2024-11-06
上海流水线回收五大元素
在FTL提供的Pipeline框架模版中,由五种元素组成了整个架构。
- ELEMENT – 代表系统中需要处理的对象(如一个多媒体文件的相关信息),该对象将作为模版参数传入流水线,之后的处理都是针对这种对象进行的。在框架中ELEMENT应该从ElementBase继承。
- Task – 将对一个ELEMENT的处理拆分成多个独立的操作,每一个操作由一个Task负责,多个Task可以同时运行,串行操作其中的每一个ELEMENT,当一个ELEMENT在所有的Task中都“流”一遍后,所有操作都结束后,才算处理完一个对象。
- Queue – 在各个Task之间传递ELEMENT的FIFO(先进先出)队列,每一个Task都有一个InputQueue和OutputQueue,且上一个Task的OutputQueue就是下一个Task的InputQueue,Task从其InputQueue中获取ELEMENT,处理完毕后放入OutputQueue中,等待下一个Task处理。当后面的Task没有及时处理完毕时,可以进行等待或流控。
- Pipeline – 一个Pipeline中有一或多个Task,各个Task可以并行执行,对所有的ELEMENT串行进行处理,当所有的ELEMENT处理结束后,这个Pipeline才结束。
- Factory – 管理多条流水线,将素材根据不同的类型,分配到不同的流水线进行处理,类似于设计模式中的策略模式。每个Pipeline 处理一种类型的素材(如 静止画 或 视频文件、音乐文件等,甚至可以根据具体的格式类型进一步划分)。这样根据ELEMENT的处理需要,通过不同的Task组建出相对应的Pipeline,从而完成整个应用程序的需要的功能。