文件名称:pipeline:简单的异步数据管道,用Go编写并发任务
文件大小:22KB
文件格式:ZIP
更新时间:2024-05-01 04:13:28
Go
数据管道 用Go编写的简单异步数据管道,在每个阶段都支持并发任务。 安装 go get -v -u github.com/caffix/pipeline 用法 管道通过多个阶段处理输入源提供的数据,最后由输出接收器使用。 流水线的所有步骤都可以同时执行以最大化吞吐量。 流水线还可以在每个步骤之间使用缓冲来执行,以尽量减少一个阶段比另一个阶段花费更长的时间。 从正在执行的任务返回的任何错误将终止管道。 如果任务返回nil数据,则该数据将标记为已处理,并且不会继续进行下一阶段。 管道数据 管道Data实现Clone和MarkAsProcessed方法,该方法执行深度复制并标记数据以防止进一步沿管道向下移动。 下面是一个简单的管道Data实现: type stringData struct { processed bool val string } // Clone imp
【文件预览】:
pipeline-master
----stage.go(2KB)
----.gitignore(275B)
----go.mod(272B)
----pool_test.go(2KB)
----pipeline.go(5KB)
----bcast.go(2KB)
----LICENSE(11KB)
----parallel.go(2KB)
----go.sum(1021B)
----README.md(7KB)
----bcast_test.go(1KB)
----pipeline_test.go(5KB)
----data.go(363B)
----task.go(2KB)
----fifo.go(1KB)
----source.go(491B)
----parallel_test.go(988B)
----fifo_test.go(729B)
----sink.go(534B)
----pool.go(3KB)