Настройка масштаба кэша счетчика

Мой счетчик кэша блокирует строку под большой нагрузкой, поэтому я нашел гем 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 определения в ваших моделях будут использовать этот класс для обновления счетчика.

Другие вопросы по тегам