mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 07:53:49 +08:00
FIX: Handle nil
values in DistributedCache#defer_get_set
(#15978)
Themes often cache `nil` values in a DistributedCache. This bug meant that we were re-calculating some values on every request, AND triggering message-bus publishing on every request. This fix should provide a significant performance improvement for busy sites.
This commit is contained in:
@ -21,7 +21,7 @@ class DistributedCache < MessageBus::DistributedCache
|
||||
end
|
||||
|
||||
def defer_get_set(k, &block)
|
||||
return self[k] if self[k]
|
||||
return self[k] if hash.key? k
|
||||
value = block.call
|
||||
self.defer_set(k, value)
|
||||
value
|
||||
|
Reference in New Issue
Block a user