Я использую redis для отслеживания ежедневных просмотров темы на доске объявлений, которую я создаю. У меня есть другое поле в предметной модели, которое хранит все временные представления для предмета.
Я использую отсортированный набор для отслеживания видов, потому что он позволяет мне легко и быстро отображать самые популярные темы на сегодняшний день.
Я хочу создать задачу, которая будет выполняться в полночь - итерация по отсортированному набору - добавление подсчетов просмотров для определенного предмета в тот же день к предметам во всех представлениях времени. Затем я хочу удалить участника после того, как я обновил представления этой темы.
Что представляет собой элегантный способ перебора всех элементов в отсортированном списке и обновления их связанной (по идентификатору) сущности активной записи?
Вот как я добавляю представление для темы:
def self.record_view(id)
REDIS.zincrby("views", 1, id)
end
Вот как я получаю количество просмотров для предмета:
def views
REDIS.zscore("views", self.id).to_i
end