我想通过count 和超时在core.async chan上批量处理消息(即10ms或10条消息,以先到者为准)。 Tim Baldridge has a video on batching,但它在core.async中使用了已弃用的函数,并且不使用传感器。我正在寻找类似以下内容......
(defn batch [in out max-time max-count]
...
)
答案 0 :(得分:14)
传感器不应该真正关注配料功能 - 作为in
频道的接受者,它会看到该频道上任何传感器转换的值,以及任何听取out
的听众反过来会看到由该频道的换能器转换的值。
对于实现,下面的函数将从max-count
中获取批量in
项,或者自上一批输出以来max-time
到达的数量很多,并将它们输出到{ {1}},当输入通道关闭时关闭,受输入通道的传感器(如果有的话),任何听取out
的听众也将如上所述应用该通道的传感器):
out