Настройка масштаба кэша счетчика
Мой счетчик кэша блокирует строку под большой нагрузкой, поэтому я нашел гем wanelo/counter-cache, который, кажется, идеально подходит для моей проблемы, но я не могу его настроить, и это должно быть что-то действительно простое, но я не вижу его. https://github.com/wanelo/counter-cache Я хочу, чтобы он использовал мои уже работающие отложенные задания и Redis.
В моем конфигурационном файле
Counter::Cache.configure do |c|
c.default_worker_adapter = here??? DelayedJob ??
c.recalculation_delay = 5.hours
c.redis_pool = Redis.new
c.counting_data_store = Counter::Cache::Redis
end
Если я не ставлю линию c.default_worker_adapter
при выполнении это говорит undefined method 'enqueue' for nil:NilClass
Есть идеи о том, что происходит? Что я должен положить в рабочий адаптер? Ничто не похоже на работу. Спасибо за ваше время
1 ответ
default_worker_adapter
это имя класса, который будет обрабатывать ваши обновления. Пример приведен на странице github этого драгоценного камня. Например, если вы используете sidekiq, вы должны сделать sidekiq рабочим классом и назвать его как хотите. На странице github этот класс называется CounterWorker
и вы можете скопировать его в точности так, как ему дано, хотя вы можете использовать любую отложенную рабочую среду, какую захотите. С тех пор любой counter_cache_on
определения в ваших моделях будут использовать этот класс для обновления счетчика.