欢迎!有关如何使用本站的更多信息,请参阅关于 页面。
我想知道当项目从滑动或掉落缓冲区中掉落时,以便我可以做一些像记录和跟踪度量的事情。
附件的补丁提供了一个可能的机制来完成这项任务,即向滑动缓冲区(sliding-buffer)和掉落缓冲区(dropping-buffer)中添加一个可选的第二个参数 - 这将是一个一参数函数,该函数将使用掉落的项目被调用。
注释由:gshayban
嗨 Chris,我认为这个用例可以通过一个 go 进程与集合的直接组合来处理,无需修改现有的缓冲区实现。我担心会因一个非必要字段而使缓冲区付出代价。
我喜欢使用库原语来确保它们尽可能完备。
(如果您非常想自己创建一个缓冲区,没有人能阻止您 =) 这是一个实现协议,但相对稳定。只是要注意,缓冲区操作在通道锁定上下文中运行,所以要确保使用 dispatch/run 将溢出函数调度到异步线程池中)