Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 如何在TYPO3中进行缓存预热_Caching_Typo3_Typo3 9.x - Fatal编程技术网

Caching 如何在TYPO3中进行缓存预热

Caching 如何在TYPO3中进行缓存预热,caching,typo3,typo3-9.x,Caching,Typo3,Typo3 9.x,,建议通过打字脚本设置缓存\u clearAtMidnight,然后进行后续缓存预热 我想知道如何做这个缓存预热,因为我没有找到一个调度任务来做它 (每天清理整个缓存一次似乎有些过分,但无论如何,缓存预热对我来说似乎是个好主意。)由于我不知道TYPO3中是否有缓存预热的内部机制,我基于一个简单的PHP脚本(实际上可以是任何东西——Python、PHP、Bash等等)构建了自己的小缓存加热器。脚本读取sitemap.xml并通过cURL请求每个页面 我使用自定义用户代理从统计数据中排除这些请求 c

,建议通过打字脚本设置
缓存\u clearAtMidnight
,然后进行后续缓存预热

我想知道如何做这个缓存预热,因为我没有找到一个调度任务来做它


(每天清理整个缓存一次似乎有些过分,但无论如何,缓存预热对我来说似乎是个好主意。)

由于我不知道TYPO3中是否有缓存预热的内部机制,我基于一个简单的PHP脚本(实际上可以是任何东西——Python、PHP、Bash等等)构建了自己的小缓存加热器。脚本读取sitemap.xml并通过cURL请求每个页面

我使用自定义用户代理从统计数据中排除这些请求

curl_setopt($ch, CURLOPT_USERAGENT, 'cache warming - TYPO3');

您可以使用这个ext。它是一个简单的wget包装器,但您可以将它添加为调度程序任务


有一些扩展可用于缓存预热:

另请参见Benni Mack关于缓存的这篇相对较新的博文(第1部分):

一般来说,还有很多事情要考虑,例如改变缓存持续时间,优化页面加载速度,而不缓存等。
顺便说一句,
cache\u clearAtMidnight
会在午夜清除缓存,它会将过期时间设置为午夜。缓存过期后,将重新生成缓存。具有相同的效果,但可能需要知道

我认为看到各种解决方案是件好事。但是t3fetch并没有过滤掉URL。递归wget会按照链接进行增量爬网,还将获取fileadmin、typo3、typo3conf等文件。为了预热页面缓存,这是不必要的,并且会增加运行所需的时间(例如,在大型站点上)。此外,我认为从一个不使用TYPO3功能的TYPO3扩展运行命令行脚本没有什么好处!这当然应该改进。不管怎样,你能告诉我b13/预热是否会预热单个记录视图,还是只预热页面吗?对于爬虫程序,您需要将其配置为通过单个记录视图进行爬虫,有时当单个记录的url很复杂时,配置爬虫程序ext非常困难。实际上,我目前正在使用wget。我知道这些其他解决方案,但并没有真正将它们用于缓存预热。我现在不能回答你的问题。现在,我将更深入地研究其中一些解决方案。如果我发现了一些有趣的东西,我会更新我的答案。对于wget,我也会使用-t1(只重试一次)并排除一些目录,例如-X“fileadmin,typo3,typo3conf,typo3temp,uploads”和-spider等Sybille-你能告诉我b13/warmup是否会对记录的单个视图进行预热,还是只对页面进行预热吗?对于爬虫程序,您需要另外配置它以通过记录的单个视图进行爬虫,有时当单个记录的url很复杂时,配置爬虫程序ext非常困难。