특정 Delayed :: Job을 콘솔에서 실행하도록 어떻게 지시합니까?


95

어떤 이유로 Delayed :: Job 's는 대기열에 추가하기로 결정했지만 여러 번 다시 시작 했음에도 불구하고 아무것도 실행하지 않고 심지어 -9'd를 죽이고 다시 시작했습니다. 어떤 작업도 실행하지 않습니다.

/ console에서 특정 작업을 지정하고 작동하도록 지시 할 수 있습니까?

전의:.. Delayed::Job.find(x).run


답변:


130

콘솔에서 특정 작업을 실행하는 방법에 응답 :

Delayed::Job.find(x).invoke_job

그러나 완료된 작업을 파괴하는 것과 같은 다른 작업은 실행되지 않는다는 것을 기억해야합니다. 작업 / 작업을 실행하는 것뿐입니다.


4
답변의 작성자 노트를주의 깊게 읽으십시오. "완료된 작업을 파괴하는 것과 같은 다른 작업은 실행되지 않습니다" . 나는 그것을 읽지 않았고 나는 미쳐 가고 있었기 때문에 그렇게 말한다. 체크 @ DavidTuite의 대답
fguillen

164

다음과 같이 할 수도 있습니다.

Delayed::Worker.new.run( Delayed::Job.find(x) ) 

좋은! 감사합니다!
여행

26
이것이 최선의 대답입니다. 작업이 완료된 후 작업을 제거합니다. 감사합니다
m4risU 2014 년

12
Delayed :: Worker.new.run (Delayed :: Job.find (id))
mrt

우수한. @ m4risU와 동의합니다.
Chris Scott

내가 @mrt의 의견에 동의, 당신은 당신이 올바른 작업을 실행하도록해야한다
조니

0

Heroku에서 나는 "고착 된"직업을 가지고 있었고 heroku restart노동자 / 작업이 다시 시작 하기 위해 달려야 만했다.


긍정적 인 의견에 감사드립니다 ;-) 질문하는 사람 또는이 질문에 오는 사람들이 Heroku에 문제가있을 수 있습니다.
rassom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.