Activar el almacenamiento en caché de Shopware más allá de 20 segundos

¿Mucho tráfico en su tienda? ¿Siempre se ha preguntado por qué sus páginas de categorías son lentas, salvo los primeros 20 segundos? Sí, yo también. Así que, como yo sospechaba, que la documentación Shopware no dice nada al respecto, empecé a buscar intuitivamente en el código y encontré esto aquí en:

<?php declare(strict_types=1);
// vendor/shopware/core/Framework/Adapter/Cache/InvalidateCacheTask.php

namespace Shopware\Core\Framework\Adapter\Cache;

use Shopware\Core\Framework\MessageQueue\ScheduledTask\ScheduledTask;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;

class InvalidateCacheTask extends ScheduledTask
{
    public static function getTaskName(): string
    {
        return 'shopware.invalidate_cache';
    }

    public static function getDefaultInterval(): int
    {
        return 20;
    }

    public static function shouldRun(ParameterBagInterface $bag): bool
    {
        return $bag->get('shopware.cache.invalidation.delay') > 0;
    }
}

Pero, ¿hay alguna forma de cambiar el valor de invalidación de la caché por configuración? Bueno, sí, más o menos, en el archivo de configuración:

config/packages/shopware.yaml

Puedes configurar el parámetro shopware.cache.invalidation.http_cache o mejor dicho puedes restablecerlo.

shopware:
    cache:
        invalidation:
            http_cache: []

Y para verlo en todo su efecto, es necesario establecer en su .env el parámetro SHOPWARE_HTTP_CACHE_ENABLED=1

Pero hay que decir que también hay que comprobar los requisitos. Si tiene diferentes diseños para diferentes grupos de clientes, el almacenamiento en caché puede interferir con sus requisitos. Después de un inicio de sesión o un producto en el carro, el contexto cambia, y usted puede tener problemas debido a la falta de invalidación de caché.

Por lo tanto, lo más probable es que desee poner algo como esto aquí en su config/packages/cacheconfig.yaml que debe crear y descartar la configuración del parámetro cache.invalidation.http_cache mencionado anteriormente, ya que la configuración predeterminada de Shopware incluye la excepción de http-caching de las sesiones de usuario archivadas-cart y logueadas.

framework:
  cache:
    app: cache.adapter.filesystem
    pools:
      cache.property_access:
        adapter: cache.app
      cache.serializer:
        adapter: cache.app
      cache.annotations:
        adapter: cache.app
      cache.property_info:
        adapter: cache.app
      cache.messenger:
        adapter: cache.app
      cache.object:
        default_lifetime: 86400
        adapter: cache.app
        tags: cache.tags
      cache.http:
        default_lifetime: 86400
        adapter: cache.app
        tags: cache.tags
      cache.tags:
        default_lifetime: 7200
        adapter: cache.app

shopware:
  cache:
    invalidation:
      delay: 0
      count: 150
  cart:
    expire_days: 21

Comparte:

Facebook
LinkedIn
WhatsApp

¿Eres desarrollador y buscas proyectos de Shopware?

Contratamos

Índice

En clave
Entradas relacionadas

Shopware vs. Prestashop, ¿quién es mejor?

Al comparar Shopware y PrestaShop, es importante entender que ambas plataformas ofrecen características únicas y satisfacen necesidades diferentes. He aquí una comparación basada en diversos factores:

Shopware vs. Magento, ¿quién es mejor?

A la hora de comparar Shopware y Magento, es importante tener en cuenta varios factores, ya que ambas plataformas tienen sus puntos fuertes y responden a necesidades diferentes. He aquí un desglose:

¿Para qué sirven los Structs en Shopware 6?

Los Structs en Shopware 6 son parte de su arquitectura de programación, específicamente diseñados para el manejo de datos. A continuación le ofrecemos una descripción detallada de su finalidad y funcionalidad: