bedrockstreaming/stale-cache-bundle

将过期缓存模式添加到Symfony缓存

安装次数: 3,750

依赖项: 0

建议者: 0

安全: 0

星标: 3

关注者: 30

分支: 0

开放问题: 0

类型:symfony-bundle

v2.0.0 2022-09-21 13:29 UTC

This package is auto-updated.

Last update: 2024-08-26 19:37:42 UTC


README

简介

此包旨在为symfony/cache组件提供过期缓存功能。基本上,它执行以下步骤

  1. 通过“过期时间”扩展缓存项的寿命
  2. 在过期时间内,如果检索到缓存项,尝试重新生成它
  3. 如果重新生成失败并带有特定标记的错误,则返回最初缓存的值

用法

配置

首先,您应该配置每个过期缓存服务

bedrock_stale_cache:
    decorated_cache_pools:
        stale_cache_service_id:                    # Desired id for this new stale cache instance
            cache_pool: cache_pool_id              # Cache pool on top of which stale cache will be used 
            max_stale: 3600                        # Stale period duration, in seconds
            enable_debug_logs: true                # Optional (defaults to false), produce a bunch of debug logs

它将声明一个@stale_cache_service_id,您可以用作注入依赖。过期服务将实现Symfony\Contracts\Cache\CacheInterface,因此您需要使用get方法来检索缓存项。如果您需要标记功能,可以使用Symfony\Contracts\Cache\TagAwareCacheInterface

它与旧的Symfony\Component\Cache\Adapter\AdapterInterface不兼容。

允许某些错误使用过期缓存

为了使用过期缓存,您必须在自定义错误中实现Bedrock\StaleCacheBundle\Exception\UnavailableResourceException。可以使用allowStaleCacheUsage方法进行一些自定义逻辑,或者您可以硬编码一个return true

事件

在过期缓存使用时发送一个Bedrock\StaleCacheBundle\Event\StaleCacheUsage事件。强烈建议记录它,并关联相关错误。

日志

可以启用调试日志以确保正确使用过期缓存。在生产环境中不应启用,因为它可能导致性能问题。

贡献

您可以执行make quality test来执行质量检查和测试。还有一些make目标可以帮助您检查此包是否在每种Symfony版本上正确支持

  • make composer-install-sf4
  • make composer-install-sf5
  • make composer-install-sf6