用于缓存预热的 contao 调度程序

contao scheduler for cache warmup

在系统->维护->预热缓存中有预热缓存的选项。我必须每周在我的 contao 站点预热缓存。所以我想写一个调度任务。我知道有一个选项可以实现调度任务

$GLOBALS['TL_CRON']

实施这个会有什么风险?调度程序中此缓存预热背后的任何安全风险?

In brief :- I need a scheduler for page cache warmup.

  • Disabled pages should not be included
    • Hidden pages should also be warmed up

我假设你指的是 Contao 3 安装,缓存指的是内部缓存,你可以在后端的维护部分清除它,然后重建。

为此,您可以使用 \Contao\Automator class,它还有一个命令行界面。要清除和重建内部缓存,您可以使用以下命令:

$ php system/bin/automator generateInternalCache

如有必要,将 php 替换为适当 PHP CLI 的路径(最好使用您的 Contao 安装使用的 PHP 版本)。

更新:

对于基于 Symfony 的应用程序 Contao 4(管理版),您可以使用以下命令:

$ php vendor/bin/contao-console cache:clear --no-warmup
$ php vendor/bin/contao-console cache:warmup

无法通过命令或 cron 条目执行您想执行的操作。您正在使用的扩展的搜索重新索引或前端页面缓存预热之类的东西只能通过 JavaScript AJAX 请求工作 - 因此它们需要客户端才能工作。 Contao 还没有能力使用诸如服务器端请求队列之类的东西来进行页面缓存预热和搜索索引。