使WordPress成为核心

开的2年前

上次修改时间4个月前

#55999 新的 缺陷(bug)

wp_suspend_cache_addition还应该禁用缓存设置吗?

报告人: 马耳他的个人资料 马耳他 所有者:
里程碑: 未来版本 优先: 正常的
严重程度: 正常的 版本:
组件: 缓存API 关键词: has-patch接口 第二个小齿轮 has-unit-测试 早期的
重点: 性能 复写的副本:

描述

现在,wp_suspend_cache_addition只有在“添加”到缓存时才被选中。

然而,大多数插件/开发人员仅使用wp_cache_set更新/添加到缓存。
这意味着在大多数插件/案例中,wp_suspend_cache_addition没有任何用处,事实上只有一些函数可以添加到缓存中(即:set、incr、decr),这是非常意外的行为

我建议在设置缓存之前也检查wp_suspend_cache_addition。
这也符合其功能描述:

停止向缓存添加更多数据,但仍允许缓存检索。

因为“set”也会“添加”缓存中的数据(或者至少修改已经存在的数据,从而添加/减去)。

更改历史记录(8)

#2 @约十亿
2年以前

  • 焦点 性能补充
  • 关键词 需要单元测试 第二个小齿轮补充
  • 版本 大旅行箱删除

这是一个好主意,但却是一个突破性的改变。例如,在大型导入期间,挂起缓存添加对于避免消耗大量内存(尤其是在插入术语和post-meta时)很有意义,但更新现有缓存条目可能是可取的,也是意料之中的。

我看看能不能找到一些具体的例子。

我认为为了避免向后兼容性问题,需要通过一个新函数来实现,例如wp_suspend_cache_changes().

无论哪种方式,最好也能在这方面得到测试覆盖率。

#3 @kkmavme公司
8个月以前

  • 关键词 has-unit-测试补充;需要单元测试远离的

例如,在大型导入期间,挂起缓存添加对于避免消耗大量内存(尤其是在插入术语和post-meta时)很有意义,但更新现有缓存条目可能是可取的,也是意料之中的。

  • 对于incr/decr,如果只挂起“add”,但随后调用incr/docr,那么它将以错误的值结束。对于这2个函数,它是中断的,但最初的行为是无意的,我想不出在什么用例中会出现这种情况。
  • for set:使用持久缓存后端时,它正在破坏当前已损坏的内容=使其按预期工作:-)。当前行为是导致无效缓存状态的竞争条件的巨大来源。

此外,从suspend函数的函数描述来看,它将挂起所有“添加”到缓存的操作——我想说,它之前只停止了“添加”,这几乎是意料之外的。

我也没能想出一个例子,你想禁用“添加”,但仍然可以“设置”?

---

现在添加了单元测试

这张票是在松弛(Slack)kkmusome的《核心》。查看日志.


8个月以前

#5 @瑞士风格
8个月以前

  • 关键词 早期的补充
  • 里程碑已从更改等待审查未来版本

添加早期的关键字,因为这种更改可能在周期的早期完成。

这张票是在松弛(Slack)kkmusome的《核心》。查看日志.


6个月以前

这张票是在松弛(Slack)kkmusome的《核心》。查看日志.


5个月以前

这张票是在松弛(Slack)mikachan的in#core。查看日志.


4个月以前

注:请参见TracTickets公司有关使用的帮助门票。