新在Symfo欧宝娱乐app下载地址ny 5.2:异步缓存验算
2020年10月1日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony的版本。欧宝娱乐app下载地址其中一些信息可能是过时了。阅读最近的Symfony文档欧宝娱乐app下载地址。
提供的
尼古拉斯Grekas
在# 30572。
一个缓存踩踏事件是一种级联失效可能发生当缓存机制面临非常高的负载。欧宝娱乐app下载地址Symfony缓存组件提供了内置的防止踩踏事件通过“概率早期过期”。
使用这种方法,每个进程访问缓存的价值作出决定关于再计算价值。这是一个纯粹的概率决定的概率增加随着缓存过期值越来越近。
在Sy欧宝娱乐app下载地址mfony 5.2我们改善这个特性允许你异步验算缓存值通过发送消息总线(使用通讯组件)。首先,添加新的early_expiration_message_bus
选择您的缓存池和定义的名称总线的消息将会发送:
1 2 3 4 5 6
#配置/包/ cache.yaml框架:缓存:池:test.cache:early_expiration_message_bus:messenger.default_bus
然后,新的路线EarlyExpirationMessage
你的运输信息:
1 2 3 4 5
#配置/包/ messenger.yaml框架:信使:路由:“欧宝娱乐app下载地址Symfony \缓存组件\ \ \ EarlyExpirationMessage使者’:amqp
就是这样。欧宝娱乐app下载地址Symfony将现在开始发送消息时缓存值需要验算。开始你的工人使用这些消息和完成工作。有两件事要记住当使用这个功能:
- 你只能使用可调用的
(someService美元,“someMethod”)
因为PHP闭包不能被序列化。此外,对于这个工作,服务必须是公开的或者它必须实现CallbackInterface
auto-tagged为container.reversible
; - 服务必须计算值仅使用它的缓存键,这是唯一的上下文信息包含在消息。
发表在#生活在边缘
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now