2017-10-07 19 views
0

스케줄러 작업에서 Rails.cache를 사용하는 데 어려움이 있습니다. 작업은 올바르게 스케줄되고 Rail.cache를 사용할 때까지 문제없이 모델 논리를 실행합니다. 캐시를 통해 정보를 쓰거나 읽을 수는 없습니다. 내 글은 실패하지 않지만 캐시를 읽을 때 '돌아 오지 않음'을 얻습니다. 아무도 내가 문제를 파악할 수 있습니까?Rufus Scheduler 작업에서 Rails.cache 사용

설정/초기화/task_scheduler.rb 내가 클러스터 모드로 푸마와 Rails MemoryStore을 사용하고

scheduler = Rufus::Scheduler::singleton 

scheduler.interval('10s') do 

    begin 
    Rails.cache.write('city', "Duckburgh") 
    stats = Rails.cache.read('city') 
    ApplicationController.helpers.write_log("Rufus Scheduler", "Job Completed", stats) 
    end 

end 

.

+0

"캐시를 통해 정보를 쓰거나 읽을 수 없음"이란 무엇을 의미합니까? 모호합니다. – jmettraux

+0

나는 캐시에 쓸 내용이 실제로 쓰여지지 않는다는 것을 의미합니다. 읽기는 항상 nil을 반환합니다. 그래서 캐시에서 정보를 읽는 것에 의존하는 모든 코드는 실패합니다. 나는 캐시 저장소로 memory_store를 사용한다. – user8737928

+0

질문을 업데이트하여 http://api.rubyonrails.org/v5.1/classes/ActiveSupport/Cache/MemoryStore.html을 사용했음을 나타내고 또한 실행중인 서버 (승객, 유니콘, puma) 그리고 그 서버를 실행중인 모드/옵션. 또한 write_log가 당신에게 내놓은 결과 ("Duckburgh"또는 nil?)를 나타내십시오. – jmettraux

답변

0

Rails 4에서 Rails 5.1.2로 업그레이드 한 후 문제가 해결되었습니다. 설정 파일의 보석과 설정의 변화량을 감안할 때 이러한 변경 사항 중 어느 것이 내 문제를 해결했는지 확신 할 수 없습니다.