请在2024 年 Clojure 状态调查!分享您的想法。

欢迎!有关如何使用本站的更多信息,请参阅关于 页面。

0
core.async

我想知道当项目从滑动或掉落缓冲区中掉落时,以便我可以做一些像记录和跟踪度量的事情。

附件的补丁提供了一个可能的机制来完成这项任务,即向滑动缓冲区(sliding-buffer)和掉落缓冲区(dropping-buffer)中添加一个可选的第二个参数 - 这将是一个一参数函数,该函数将使用掉落的项目被调用。

2 答案

0

注释由:gshayban

嗨 Chris,我认为这个用例可以通过一个 go 进程与集合的直接组合来处理,无需修改现有的缓冲区实现。我担心会因一个非必要字段而使缓冲区付出代价。

我喜欢使用库原语来确保它们尽可能完备。

(如果您非常想自己创建一个缓冲区,没有人能阻止您 =) 这是一个实现协议,但相对稳定。只是要注意,缓冲区操作在通道锁定上下文中运行,所以要确保使用 dispatch/run 将溢出函数调度到异步线程池中)

0
参考:https://clojure.atlassian.net/browse/ASYNC-55(由 cperkins 报告)
...