smic/page-warmup

页面缓存预热

安装27,818

依赖关系: 0

建议者: 0

安全: 0

星标: 5

关注者: 2

分支: 0

开放问题: 1

类型:typo3-cms-extension

dev-main 2023-06-21 09:00 UTC

README

为您的TYPO3页面提供缓存预热 ☕️

当在TYPO3中编辑内容时,某些页面的缓存将自动刷新。根据您的设置,这可能涉及数十个新闻插件页面,在编辑新闻记录时刷新。

此扩展检测已从缓存中消失的页面URL,并提供一个计划任务来自动预热它们,在您的访客需要这样做之前。

安装

composer require smic/page-warmup

使用方法

安装扩展后,设置一个具有类名“Page Cache Warmup Queue Worker (page_warmup)”的新计划任务。推荐(保守)的设置是

  • 类型:重复
  • 频率:120
  • 不允许并行执行
  • 秒数限制:60

这样就完成了。每当缓存框架根据缓存标签刷新页面缓存时,受影响的页面将自动再次预热。

Scheduler Task

如果缓存预热速度太慢,您可以尝试更激进的设置,如

  • 类型:重复
  • 频率:60
  • 允许并行执行
  • 秒数限制:240

这将导致大约4个同时任务进程,它们正在处理队列。这意味着增加了系统的负载。

内部原理

在TYPO3缓存框架中,条目根据标签或全部刷新,并且它不会给您任何关于实际刷新了哪些内容/信息的反馈,这使得很难知道需要预热什么。这就是为什么此扩展在页面缓存时收集这些信息。它将URL和缓存标签保存在所谓的“预热预留”中。当缓存标签被刷新时,扩展可以提取所有匹配该标签的预留,并将页面URL写入预热队列。

检测页面何时被缓存

TYPO3没有适合的钩子或中间件来响应页面被缓存,因此此扩展提供了一个名为VariableFrontendWithWarmupReservation的缓存,并将其注册到pages缓存。它检查所有传入的缓存条目和看起来像页面缓存条目的内容,将被写入预热预留。