clojure - 如何从大量 core.async go 通道中收集数据?
问题描述
如何从大量go
渠道中收集数据?我得到assert failed: <! used not in (go ...)
下面的代码。我知道我为什么得到它,我在问从所有渠道消费的最佳方式是什么。
(->> state :pods (map #(go [(pd/id %)
(<! (f/pod-metrics fleet %))])) (map <!) (into {}))
解决方案
使用https://clojuredocs.org/clojure.core.async/merge将您的源通道合并为一个,然后用于<!!
从中获取 val。请注意,<!
只能在go
块内部使用。
推荐阅读
- laravel - 使用 elasticquent 映射得到 Root 映射定义有不支持的参数错误
- c# - 在 c# 中使用 Selenium 时避免加载图像和其他资源(如 css)
- xamarin.forms - 强制屏幕阅读器阅读标签
- python - 在 sympy 中解析字符串时识别子表达式
- reactjs - 来自 React 的 SignalR:'HubConnectionBuilder' 未定义 no-undef
- java - 在 docker 容器中使用 logstash 和 logback 进行日志记录
- java - Java - 在设置子字段之前在超级实例化期间调用抽象方法的问题
- visual-studio-code - vscode 键绑定表示法(什么是`^`?)
- r - 如何使用映射到唯一值的分层和任意分组变量创建一个小标题?
- php - 在php中将大字符串转换为数组