在这些引擎上使用传统只考虑单请求的容器技术, 就容易发生单例相互污染, 内存泄露等问题 (姑且称之为”IoC容器的请求隔离问题” ). 于是出现了各种策略以解决之....请求中生成的单例, 挂载到容器的动态属性上.
持有”进程级容器”, 当绑定不存在时, 到”进程级容器” 上查找之....但在 swoole 等引擎上, 一个 worker 进程要响应多个请求, 单例的数据就容易相互污染.....
// 只有自己没有绑定, 且父容器有绑定的情况下, 才通过父类来做实例化....双容器策略在 CommuneChatbot 项目中的效果
CommuneChatbot 目前使用双容器, Demo 在微信公众号 CommuneChatbot 上运行.