第 8 章
并发与监听
有界并发处理、取消和文件事件流。
有界 parallel
let urls = [
"https://example.com",
"https://example.org"
]
urls
|> parallel(2) { url ->
http.get(url)
|> timeout(5s)
|> send
}
|> printparallel(n) 最多运行 n 个隔离 worker,按输入顺序输出;一个任务失败会取消剩余任务。跨 worker 的值必须满足 Sendable 检查。
监听文件变化
watch(path("./src"))
|> where { event -> event.kind == "write" }
|> debounce(300ms)
|> for_each { event ->
print(event.path)
}watch 返回无限 FileEvent Stream。通过 debounce、where 和 take 等 Flow 算子组合自动化任务,并统一响应 Ctrl+C。
