백그라운드에서 일부 사용자 정의 메서드를 실행하기 위해 DelayedJob을 가져 오려고했습니다. 이 테스트 케이스를 들어 내가 도우미에서 다음과 같은 방법을 정의 :Delayed_job 실행되지 않음 사용자 정의 메서드
def test_case
u = User.new
u.first_name = "JimBob"
u.last_name = "joe"
u.email = "[email protected]"
u.password = "sailsJ123"
u.password_confirmation = "sailsJ123"
u.save
end
그런 다음 컨트롤러 액션에, 나는 정의
def action_name
#whatever it does outside of this
test_case
end
이 작업이 여기에 때 새 사용자를 만들 test_case 원인 운영. 내가 작업을 지연하려고하면, 나는 그것을 변경 :이 delayed_job 원인
def action_name
#whatever it does outside of this
self.delay.test_case
end
가 작성 될,하지만이 잘못을하고있어 특정 징후 : 구체적으로는 delayed_job 테이블의 핸들러는 모든 포함 이 정보는 test_name 등을 실행하도록 지정하는 단순한 처리기가 아니라 action_name (이 경우에는 약 50000 자의 매우 큰 파일)의 다른 곳에서로드됩니다. 내가 테스트를 유지하기 위해이 약을 변경하는 경우
이, 내가하고 시도 : 예상대로,
def action_name
#whatever it does outside of this
u = User.new
u.first_name = "JimBob"
u.last_name = "joe"
u.email = "[email protected]"
u.password = "sailsJ123"
u.password_confirmation = "sailsJ123"
u.delay.save
end
이가 DJ를 성공적으로 생성하고, 그것은 세부 사항을 지정하는 핸들러를로드합니다 (예 : u.name => "JimBob"...). 그러나 작업이 실행될 때 새로운 사용자는 생성되지 않습니다. 심지어 암호를 필드를 처리하는 방법을 주어진 주어진 사용자 (나는 아마 DJ와 함께 사용자를 만드는 것은 어려울 수도 있지만)을 파괴하기 위해 그것을 전환하려고했지만이 작동하지 않습니다. 짧은
SO 긴 이야기 :
- 가 어떻게 DJ가 제대로 배경 방법을 실행할 수 있습니까?
- 직선적으로 보이는 지연된 작업이 생성되는 경우 데이터베이스가 변경되지 않습니다.
DJ 처리기 개체 및 메서드 이름을 무엇입니까? – AMIT
@AMIT 이것은 "지연된 작업"의 약자입니다. – Roshan