设置计数器缓存比例
Setting up counter cache scale
我的计数器缓存在重负载下锁定行,所以我发现 wanelo/counter-cache gem 这似乎非常适合我的问题,但我无法设置它,它一定是真的很简单,但我看不到。
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
知道发生了什么事吗?我应该在 Worker Adapter 中放入什么?似乎没有任何效果。
谢谢你的时间
default_worker_adapter
是将处理您的更新的 class 的名称。 gem 的 github 页面给出了一个示例。例如,如果您使用的是 sidekiq,则可以将 sidekiq worker class 命名为任何您想要的名称。在 github 页面上,这个 class 被称为 CounterWorker
并且您可以完全按照给定的方式复制它,尽管您可以使用任何您想要的延迟作业框架。从那时起,您模型上的任何 counter_cache_on
定义都将使用该 class 进行计数器更新。
我的计数器缓存在重负载下锁定行,所以我发现 wanelo/counter-cache gem 这似乎非常适合我的问题,但我无法设置它,它一定是真的很简单,但我看不到。 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
知道发生了什么事吗?我应该在 Worker Adapter 中放入什么?似乎没有任何效果。 谢谢你的时间
default_worker_adapter
是将处理您的更新的 class 的名称。 gem 的 github 页面给出了一个示例。例如,如果您使用的是 sidekiq,则可以将 sidekiq worker class 命名为任何您想要的名称。在 github 页面上,这个 class 被称为 CounterWorker
并且您可以完全按照给定的方式复制它,尽管您可以使用任何您想要的延迟作业框架。从那时起,您模型上的任何 counter_cache_on
定义都将使用该 class 进行计数器更新。