2016-07-28 2 views
1

delayed_jobs (백그라운드 작업자)를 사용하여 수신 이메일을 처리하려고합니다.지연된 작업에 인스턴스 변수 전달

class EmailProcessor 

    def initialize(email) 
    @raw_html = email.raw_html 
    @subject = email.subject 
    end 

    def process 
    do something with @raw_html & @subject 
    end 
    handle_asynchronously :process, :priority => 20 

end 

문제는 그 작업에 지연 인스턴스 변수 (@raw_html & @subject)를 통과 할 수있다. 백그라운드 작업에서 검색 할 모델에 데이터를 저장하는 지연된 작업 요청이지만 백그라운드 작업자가 레코드 저장을 포함하여 전체 작업을 완료하도록하는 것이 좋습니다.

의견이 있으십니까? 당신이 백그라운드에서 실행하려는 방법에 PARAMS 전달하는

답변

1

사용 delay :이 문제가 해결되지

class EmailProcessor 

    def self.process(email) 
    # do something with the email 
    end 
end 

# Then somewhere down the line: 

EmailProcessor.delay.process(email) 
+1

, 나는 여전히 지연 작업에 '이메일'변수를 전달하는 것을 시도 할 것이다 – echan00

+0

시도해 보셨습니까? –

관련 문제