2010-07-23 2 views
1

나는 현재 CPU라는 속성을 가진 Job이라는 모델을 가지고있다. 이것은 작업이 실행중인 CPU 시간에 해당합니다. 특정 날짜에 대한 모든 작업의 ​​모든 시간 속성을 추가하고 싶습니다. 이 열의 형식은 00:00:00입니다. 그러므로 나는 이것이 작동 할 것이라고 생각했다 :레일에 루비를 추가하기

def self.cpu_time 
    sum(:cpu) 
end 

다음은 "Sat Jan 01 00:00:00 UTC 2000"을 반환한다. 보이는 나던이 있지만, 어떤 도움이 내 문제를 해결

을 감상 할 수있다 0시 0분 46초 0시 26분 46초

: 내 테스트 데이터의 경우

, 나는 다음과 같은 CPU 시간을 사용

def self.cput 
    @times = find(:all, 
       :select => 'cput') 
    @total_time =0 
    for time in @times do 
     @total_time += time.cput.to_i - 946684800 
     end 
    @total_time 

    end 

답변

0

당신이 cpu 컬럼에 대해 사용중인 데이터 유형 당신은 명시하지 않습니다 레일의 방법이 될 수 있습니다. 개인적으로 초 단위로 저장 한 다음 합산 한 후 시간, 분 및 초로 변환합니다.

+0

CPU 열은 시간 형식 00:00:00 – jalagrange

+0

에 저장됩니다. 어떻게 시간을 초 단위로 저장하겠습니까? 현재 CPU 시간 노드가 시간 형식 00:00:00 인 XML 파일을 파싱 중입니다. 어떻게 그 형식에서 초로 변경할 수 있습니까? – jalagrange

+3

Time 객체는 시간의 길이가 아니라 특정 시간을 나타냅니다. 일정 시간을 저장하려면 초 수를 저장하십시오. "00:00:00"문자열을'h, m, s = "01:12:34"로 초 단위로 변환 할 수 있습니다. .split (':'); h.to_i * 3600 + m.to_i * 60 + s' – mckeed

관련 문제