smic / page-warmup
页面缓存预热
dev-main
2023-06-21 09:00 UTC
Requires
- typo3/cms-core: ^10.4 || ^11.5
This package is auto-updated.
Last update: 2024-09-18 10:01:50 UTC
README
为您的TYPO3页面提供缓存预热 ☕️
当在TYPO3中编辑内容时,某些页面的缓存将自动刷新。根据您的设置,这可能涉及数十个新闻插件页面,在编辑新闻记录时刷新。
此扩展检测已从缓存中消失的页面URL,并提供一个计划任务来自动预热它们,在您的访客需要这样做之前。
安装
composer require smic/page-warmup
使用方法
安装扩展后,设置一个具有类名“Page Cache Warmup Queue Worker (page_warmup)”的新计划任务。推荐(保守)的设置是
- 类型:重复
- 频率:120
- 不允许并行执行
- 秒数限制:60
这样就完成了。每当缓存框架根据缓存标签刷新页面缓存时,受影响的页面将自动再次预热。
如果缓存预热速度太慢,您可以尝试更激进的设置,如
- 类型:重复
- 频率:60
- 允许并行执行
- 秒数限制:240
这将导致大约4个同时任务进程,它们正在处理队列。这意味着增加了系统的负载。
内部原理
在TYPO3缓存框架中,条目根据标签或全部刷新,并且它不会给您任何关于实际刷新了哪些内容/信息的反馈,这使得很难知道需要预热什么。这就是为什么此扩展在页面缓存时收集这些信息。它将URL和缓存标签保存在所谓的“预热预留”中。当缓存标签被刷新时,扩展可以提取所有匹配该标签的预留,并将页面URL写入预热队列。
检测页面何时被缓存
TYPO3没有适合的钩子或中间件来响应页面被缓存,因此此扩展提供了一个名为VariableFrontendWithWarmupReservation
的缓存,并将其注册到pages
缓存。它检查所有传入的缓存条目和看起来像页面缓存条目的内容,将被写入预热预留。