0

작업이 실제로 실행될 때 평가되는 활성 레코드 쿼리를 포함하는 지연된 작업을 예약하고 싶습니다.DelayedJob에 평가되지 않은 ActiveRecord 쿼리 저장

Ex. 사용자에게 알림을 보내고 보내는 사용자 지정 작업이 있습니다. 알림을 보내려는 사용자를 필터링하는 매개 변수/쿼리/조건을 작업에 보내려고합니다.

나는 문자열을 평가할 수 있지만 그렇게 추한 것 같습니다.

프로젝트에서 레일즈 2.3.5를 사용하고 있으므로 Arel 루트를 사용할 수 없습니다.

나는 야망에 관한 내용을 2008 년 이후로 보았으므로 프로젝트의 상태를 알 수 없었다.

제안 사항?

답변

1

일반적으로 ActiveRecord를 사용하는 것처럼 조건 등을 생성 할 때 조건을 해시로 보낼 수 있습니다. 이 같은 아마 뭔가 :

class NotificationJob < Struct.new(:message, :query) 

    def perform 
    @users = User.all(query) 
    ... 
    end 

end 

그리고이 같은 작업을 만듭니다이 만약

query = {:conditions => ["users.company_id = ?", @company.id]} 
Delayed::Job.enqueue(NotificationJob.new("There is no cake",query), 0, Time.now) 

은 아마도 당신이 당신의 현재 코드를 제공 할 수 있습니다, 당신을 위해 작동하지 않습니다.

+0

나는 그것이 일할 것이라고 생각한다! 감사! – rmw

관련 문제