2014-10-09 7 views
1

내 sidekiq 작업자에 대한 요청 객체가 문자열로 인식되고 있습니다.요청 객체가 문자열로 인식되었습니다.

application_controller.rb

def log_variant 
    @request = request 
    AnalyticsWorker.perform_async(@request) 
    end 

variant_worker.rb 여기

class VariantWorker 

    include Sidekiq::Worker 

    def perform(current_request) 
    variant = current_request.variant.join 
    puts variant 
    end 
end 

오류

undefined method `variant' for "#<ActionDispatch::Request:0x00000101b83510>":String 

I이어야하므로 I 인스턴스 변수 요청 오브젝트를 기억하고있어에게 인 그것에 변종 메서드를 호출 할 수 있습니까? 요청 객체가 너무 복잡하여이 sidekiq 작업을 수행 할 수 없습니까?

답변

1

백그라운드에서 Sidekiq은 해당 매개 변수를 Redis로 직렬화합니다. 나는 Redis가 그것을 문자열로 던지고있는 것 같아. 일반적으로 here으로 표시된 매개 변수에서 최소 데이터를 전달하려고합니다.

관련 문제