Symfonyob娱乐下载 5.2新增功能:异步缓存重计算
2020年10月1日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
提供的
尼古拉斯Grekas
在# 30572.
一个缓存踩踏事件是一种级联故障,当缓存机制承受非常高的负载时可能发生。ob娱乐下载Symfony缓存组件通过“概率提前失效”提供内置的防止踩踏的保护。
使用这种方法,每个访问缓存值的进程都决定是否重新计算该值。这是一个纯粹的概率决策,随着缓存值过期的临近,概率也会增加。
在Syob娱乐下载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框架:信使:路由:“ob娱乐下载Symfony \缓存组件\ \ \ EarlyExpirationMessage使者’:amqp
就是这样。ob娱乐下载当需要重新计算缓存值时,Symfony将开始发送消息。让您的员工使用这些消息并完成工作。在使用这个功能时,有两件事要记住:
- 只能在表单中使用可调用对象
(someService美元,“someMethod”)
因为PHP闭包不能被序列化。此外,要实现这一点,服务必须是公共的,或者必须实现CallbackInterface
自动标记为container.reversible
; - 服务必须仅使用其缓存键计算值,缓存键是消息中包含的唯一上下文信息。
发表在#生活在边缘
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
Javier Eguiluz is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now