微信公众平台SDK 全面支持微信公众号、微信支付、企业号、开放平台 使用 Senparc.Weixin SDK 轻松打造微信各平台的扩展应用。
400客服热线:888-8888-888
自定义菜单设置工具 消息模拟工具 缓存测试 帮助文档

Senparc.Weixin缓存列队原理

  1. 微信的AccessToken等数据都使用各类Container进行管理;
  2. 每个Container都有一个强制约束的ContainerBag,本地缓存信息;
  3. ContainerBag中的属性被修改时,会将需要对当前对象操作的过程放入消息列队(SenparcMessageQueue);
  4. 每个消息列队中的对象都带有一个委托类型属性,其动作通常是通过缓存策略(实现自IContainerCacheStragegy,可以是本地缓存或分布式缓存)更新缓存;
  5. 一个独立的线程会对消息列队进行读取,依次执行列队成员的委托,直到完成当前所有列队的缓存更新操作;
  6. 上一个步骤重复进行,每次执行完默认等待2秒。此方案可以有效避免同一个ContainerBag对象属性被连续更新的情况下,每次都和缓存服务通讯而产生消耗。

测试结果:

运行中……