Closed xiaofeige closed 1 year ago
具体点呢?要api更新那些东西
比如使用AsyncFire的实现是直接起一个go-routine去异步执行,但是这种方式导致服务热重启的时候感知不到这里有没有未执行完的任务。建议event对外提供一个WatiGroup可以允许外部热重启的地方执行wait操作。
就是要实现一个服务计数器对吧?请求来的时候+1,请求完成-1,请求计数0的时候才允许热重启。
你可以用 waitgroup去实现。
可以参考 这个实现 https://github.com/asaskevich/EventBus
这个库非常精简,但是作者已经停止了维护。
@xiaofeige @a67793581 v1.1.0+
版本已经添加了简单的实现。
可以使用 Async/FireC/FireAsync
方法触发事件,事件将会写入 chan 异步消费。可以使用 CloseWait()
关闭chan并等待事件全部消费完成。
对于异步逻辑,希望能暴漏出一个合理的接口,方便支持热重启。