FIX: add support for pipelined and multi redis commands (#16682)

Latest redis interoduces a block form of multi / pipelined, this was incorrectly
passed through and not namespaced.

Fix also updates logster, we held off on upgrading it due to missing functions
This commit is contained in:
Sam
2022-05-10 08:19:02 +10:00
committed by GitHub
parent 919f71537e
commit 2df3c65ba9
9 changed files with 89 additions and 28 deletions

View File

@@ -40,9 +40,9 @@ class RandomTopicSelector
key = cache_key(category)
if results.present?
Discourse.redis.multi do
Discourse.redis.rpush(key, results)
Discourse.redis.expire(key, 2.days)
Discourse.redis.multi do |transaction|
transaction.rpush(key, results)
transaction.expire(key, 2.days)
end
end
@@ -56,9 +56,9 @@ class RandomTopicSelector
return results if count < 1
results = Discourse.redis.multi do
Discourse.redis.lrange(key, 0, count - 1)
Discourse.redis.ltrim(key, count, -1)
results = Discourse.redis.multi do |transaction|
transaction.lrange(key, 0, count - 1)
transaction.ltrim(key, count, -1)
end
if !results.is_a?(Array) # Redis is in readonly mode