Deployment-Optimierungen für den Statamic Static Cache

Das Flat File CMS Statamic ermöglicht durch seine Funktion ‚Static Cache‘ das Cachen von Seiten, das eine sehr schnelle Ladegeschwindigkeit ermöglicht.

Allerdings kann die Nutzung von aufwändigen Plugins oder Erweiterungen, wie zum Beispiel Markdown Highlight oder spatie/commonmark-shiki-highlighter, die Dauer des Cachings für einzelne Seiten erheblich verlängern. Bei umfangreichen Websites kann die vollständige Erneuerung des Caches einige Minuten in Anspruch nehmen und den Server während des Deployments stark belasten.

Zur Optimierung stehen zwei Ansätze zur Verfügung. Im Standardmodus werden 25 Seiten gleichzeitig verarbeitet, was die Serverlast erhöhen kann. Diese Zahl lässt sich reduzieren (beispielsweise auf eine Seite, also ohne Parallelverarbeitung). Diese Einstellung kann in der Datei config/statamic/static_caching.php geändert werden, indem der Parameter warm_concurrency der gewünschten Caching-Strategie hinzugefügt wird:

'strategies' => [

    'half' => [
        'driver' => 'application',
        'expiry' => null,
        'warm_concurrency' => 1, // Füge diesen Parameter hinzu
    ],
]

Infolgedessen werden weniger Seiten simultan gecacht, was die Serverauslastung deutlich reduziert. Allerdings wird dies die Aufwärmphase des Caches erheblich verlängern.

Zur effizienteren Gestaltung der Deployments kann das Cache-Warmup in die Queue verlagert werden. Auf diese Weise wird der Cache im Hintergrund aufgewärmt und das Deployment kann ohne abgeschlossenes Warmup abgeschlossen werden. Hierbei ist es wichtig, dass für die Queue ein anderer Modus als sync konfiguriert ist (sonst wird die Queue nicht im Hintergrund bearbeitet). Um das Cache-Warmup in die Queue zu verlagern, muss der Parameter --queue im Deployment-Script verwendet werden:

php artisan statamic:static:clear
php artisan statamic:static:warm --queue

Mit dieser Methode werden Deployments schnell abgeschlossen, der Webserver ist nach einem Deployment deutlich entlastet und das Aufwärmen des Caches erfolgt im Hintergrund.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert