cinatra
cinatra copied to clipboard
是否考虑动态删除和添加 接口的功能
我使用插件的模式将各个api 封装到不同的so中,但是在做不停机更新时候,发现无法停用和删除api,我使用cinatra::coro_http_server::set_http_handler 方法,将url和函数一对一绑定后,无法做到解绑,所以无法进行动态的更新so库,不知道是否会考虑实现解绑这个功能
这里有一个问题是如果要提供删除api功能的话,则需要对注册的handler加锁,这会对注册handler的访问性能造成不小的影响,现在是无锁的。
可能一个更好的做法是给api增加一个check的切面,在切面中控制访问的该API是否是废弃的,切面访问一个该API是否过期的原子变量。这个原子变量的设置也作为一个API由用户去设置,这个api不对外暴露,需要做权限校验才可以设置该原子变量。这种方案可以保持灵活性又不影响性能。
好的 感谢您提供的思路 我尝试的去实现一下 谢谢