diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2022-05-22 22:16:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-22 22:16:43 +0200 |
commit | a9b64b24d6c076cb96a66307c07d4f0158dc07da (patch) | |
tree | 8d41ef354040e5825c99bb3f656606dcc8d61291 /app/models/trends | |
parent | 54bb659ad14fda8d3427752d2c99716420997d6e (diff) |
Change algorithm of `tootctl search deploy` to improve performance (#18463)
Diffstat (limited to 'app/models/trends')
-rw-r--r-- | app/models/trends/history.rb | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/app/models/trends/history.rb b/app/models/trends/history.rb index 608e33792..74723e35c 100644 --- a/app/models/trends/history.rb +++ b/app/models/trends/history.rb @@ -11,11 +11,11 @@ class Trends::History end def uses - redis.mget(*@days.map { |day| day.key_for(:uses) }).map(&:to_i).sum + with_redis { |redis| redis.mget(*@days.map { |day| day.key_for(:uses) }).map(&:to_i).sum } end def accounts - redis.pfcount(*@days.map { |day| day.key_for(:accounts) }) + with_redis { |redis| redis.pfcount(*@days.map { |day| day.key_for(:accounts) }) } end end @@ -33,19 +33,21 @@ class Trends::History attr_reader :day def accounts - redis.pfcount(key_for(:accounts)) + with_redis { |redis| redis.pfcount(key_for(:accounts)) } end def uses - redis.get(key_for(:uses))&.to_i || 0 + with_redis { |redis| redis.get(key_for(:uses))&.to_i || 0 } end def add(account_id) - redis.pipelined do - redis.incrby(key_for(:uses), 1) - redis.pfadd(key_for(:accounts), account_id) - redis.expire(key_for(:uses), EXPIRE_AFTER) - redis.expire(key_for(:accounts), EXPIRE_AFTER) + with_redis do |redis| + redis.pipelined do |pipeline| + pipeline.incrby(key_for(:uses), 1) + pipeline.pfadd(key_for(:accounts), account_id) + pipeline.expire(key_for(:uses), EXPIRE_AFTER) + pipeline.expire(key_for(:accounts), EXPIRE_AFTER) + end end end |