【发布时间】:2015-10-28 12:23:28
【问题描述】:
我有一个这样的流式处理:
Incomming file via HTTP (original stream)
-> Check if zipfile
- Yes -> push through an unzip2-stream
- No -> push to S3
当 unzip2-stream 找到 zip-entries 时,它们会通过相同的流链推送,即
Incomming file entry from zip file ("child" stream)
-> Check if zipfile
- Yes -> push through an unzip2-stream
- No -> push to S3
感谢https://stackoverflow.com/users/3580261/eljefedelrodeodeljefe 在这次谈话之后我设法解决了主要问题: How to redirect a stream to other stream depending on data in first chunk?
为每个 zip 条目创建新的“子”流的问题在于,这些流与原始流没有连接,因此我无法为所有流获得统一的 onFinish。
我不想在处理(解压缩并发送到 S3)每个文件之前向发件人发送 202。我怎样才能做到这一点?
我在想我可能需要某种控制对象来等待所有子流的 onFinish 并强制进程停留在原始的 onFinish 事件中,直到所有文件都被处理。这会不会有点矫枉过正?有没有更简单的解决方案?
【问题讨论】: