2017-05-09 4 views
1

내 카운터 캐시가 부하가 많은 상태에서 로우를 잠그고 있기 때문에 내 문제에 완벽 해 보이는 wanelo/counter-cache gem이 발견되었지만 설정할 수없고 정말 간단해야합니다. 그러나 나는 그것을 볼 수 없다. https://github.com/wanelo/counter-cache 이미 지연된 작업과 Redis를 사용하고 싶습니다. 내 config 파일에서카운터 캐시 스케일 설정

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 

undefined method 'enqueue' for nil:NilClass

무슨 일이 일어나고 있는지에 대한 어떤 생각을 말한다 실행할 때 나는 선 c.default_worker_adapter을 넣지 않으면? Worker Adapter에는 무엇을 넣어야합니까? 아무것도 작동하는 것 같습니다. 시간 내 주셔서 감사합니다.

+0

데이터베이스 트리거를 사용해보십시오. 나는 교통량이 많은 앱에서 사용했다. –

답변

0

default_worker_adapter은 업데이트를 처리 할 클래스 이름입니다. 보석의 github 페이지에 예가 나와 있습니다. 예를 들어 sidekiq를 사용하는 경우 sidekiq 작업자 클래스를 만들고 원하는 이름을 지정합니다. github 페이지에서이 클래스는 CounterWorker이라고하며, 주어진 지연된 작업 프레임 워크를 사용할 수 있지만 주어진 클래스와 정확히 동일하게 복사 할 수 있습니다. 그 이후로는 모델의 counter_cache_on 정의가 해당 클래스를 사용하여 카운터를 업데이트합니다.