0
XXXXXJob completed after 1.6372
난 당신이에서이 통계에 액세스하는 방법 궁금 해서요 ... 나는 지연 작업 실행 있는데 나는 그것이 노동자가이 같은 로그의 런타임을 기록, 완료되면 런타임을 저장하려면 지연된 직업 수업 안에 있습니까?
나는 self.runtime
을 시도했지만 오류가 발생합니다.
건배.
XXXXXJob completed after 1.6372
난 당신이에서이 통계에 액세스하는 방법 궁금 해서요 ... 나는 지연 작업 실행 있는데 나는 그것이 노동자가이 같은 로그의 런타임을 기록, 완료되면 런타임을 저장하려면 지연된 직업 수업 안에 있습니까?
나는 self.runtime
을 시도했지만 오류가 발생합니다.
건배.
걱정됩니다. delayed_job
보석은 해당 통계에 액세스하기위한 API를 제공하지 않습니다. here들이 실행 시간을 계산해 된 장소와 그가 무슨 일이 일어나고 있는지 같은데 :
runtime = Benchmark.realtime do
invoke_job
destroy
end
logger.info "* [JOB] #{name} completed after %.4f" % runtime
그래서 runtime
이 Benchmark
모듈을 사용하여 계산하고 기록되지만 나중에 사용을 위해 어디서나 저장되지 것입니다.
비록 유사한 Benchmark.realtime
호출 또는 그와 비슷한 로직을 래핑하여 작업의 런타임을 계산할 수 있습니다.
또 다른 옵션은 클래스를 열고 run 메서드를 재정 의하여 동작을 변경하는 것입니다. – Nick
예, 클래스를 다시 열면 루비에서와 같은 대부분의 문제를 해결할 수 있습니다. 그러나 그것은 최상의 해결책이며 가능하다면 그것을 피하는 것이 좋습니다. 앱의 모든 백그라운드 작업에 타이밍이 필요한 경우에도 자신 만의'BaseJob' 클래스를 만들고 필요한 로직을 구현하고이 클래스에서 모든 작업을 파생시킬 수 있습니다. –
Benchmark에서 작업을 완벽하게 처리하면 dj가 기록한 시간이 Benchmark 결과와 일치합니다. 재사용해야 할 필요가 있다면 자체적으로 기본 작업을 만들지 만 일회용으로도 좋습니다. – Smickie