에 메모리 저장소에서 변경 "원수 덤프"오류가 발생Rails.cache가 내 환경에서이 설정하면 memcached를 저장
config.action_controller.cache_store = :mem_cache_store
ActionController::Base.cache_store
는 memcached와 저장소를 사용하지만 Rails.cache는 메모리 저장소를 대신 사용합니다 :
$ ./script/console
>> ActionController::Base.cache_store
=> #<ActiveSupport::Cache::MemCacheStore:0xb6eb4bbc @data=<MemCache: 1 servers, ns: nil, ro: false>>
>> Rails.cache
=> #<ActiveSupport::Cache::MemoryStore:0xb78b5e54 @data={}>
내 응용 프로그램에서 내 도우미 내에서 개체를 캐시하려면 Rails.cache.fetch(key){ object }
을 사용합니다. 이 모든 시간에 나는 메모리 저장소를 사용한다는 것에 놀라움에 따라 Rails.cache
이 memcached 저장소를 사용한다고 가정했다.
나는
config.cache_store = :mem_cache_store
내 환경에서 cache_store
설정을 변경하면 모두 ActionController :: Base.cache_store 및 Rails.cache 지금은 기대하는 것입니다 같은 메모리 저장소를 사용합니다 :
$ ./script/console
>> ActionController::Base.cache_store
=> #<ActiveSupport::Cache::MemCacheStore:0xb7b8e928 @data=<MemCache: 1 servers, ns: nil, ro: false>, @middleware=#<Class:0xb7b73d44>, @thread_local_key=:active_support_cache_mem_cache_store_local_cache>
>> Rails.cache
=> #<ActiveSupport::Cache::MemCacheStore:0xb7b8e928 @data=<MemCache: 1 servers, ns: nil, ro: false>, @middleware=#<Class:0xb7b73d44>, @thread_local_key=:active_support_cache_mem_cache_store_local_cache>
나는 응용 프로그램을 실행할 때
그러나, 나는 Rails.cache.fetch(key){ object }
no marshal_dump is defined for class Proc
Extracted source (around line #1):
1: Rails.cache.fetch(fragment_cache_key(...), :expires_in => 15.minutes) { ... }
vendor/gems/memcache-client-1.8.1/lib/memcache.rb:359:in 'dump'
vendor/gems/memcache-client-1.8.1/lib/memcache.rb:359:in 'set_without_newrelic_trace'
전화 라인에 "원수 덤프"오류
무엇을 제공합니까? Rails.cache
은 메모리 저장소가 될 예정입니까? 내가 Rails.cache.fetch
라고 부르는 곳에서 controller.cache_store.fetch
으로 전화해야합니까?
안녕 살릴. 네, 물건에 물건을 넣었어요. Rail.cache가 memcache 저장소 대신 메모리 저장소를 사용했기 때문에 이전에 작동했습니다. – gsmendoza