2012-07-11 2 views
0

레일스가 업데이트 된 버전의 레코드를 반환하지 않습니다.레일스 쿼리가 업데이트 된 레코드를 반환하지 않습니다.

나는 백엔드에서 처리 될 db에 작업을 제출하는 경우 submit_job(sig, label, jobtype) 두 가지 방법을 사용합니다. 그런 다음 poll_result(id)은 제출 된 작업을 매초 폴링하여 완료 시점을 확인한 다음 결과를 반환합니다 완료된 작업에서 사용자로

내 문제는 poll_result(id) 메서드가 업데이트 된 레코드를받지 못한다는 것입니다. 나는 그것이 액세스하는 레코드의 결과를 인쇄 할 때 내가 볼 수있는 모든이가하는

def self.poll_result(id) 

    change = false 
    Workbench.where("id = ?", id).each do |sig|   
     if sig.resultsready.to_i == 1 
      change = true 
     end 
    end 
    return change 
end 

는 반복 내 원래 삽입의 결과로 컴백한다. 데이터베이스를 직접보고 있는데 올바른 ID를 호출하고 레코드가 업데이트되었음을 ​​알 수 있습니다. resultsready는 데이터베이스에서 1로 설정되고 루프는 끝나야하며 되돌아 가야하지만 무한 루프에 걸릴뿐입니다.

내 가정은 어떻게 든 캐시되는 오래된/부실 레코드를 얻는다는 것입니다.하지만 내 인생에서 새로운 레코드를 가져 오는 방법을 알아낼 수는 없습니다.

-Dennis

답변

0

Workbench.connection.clear_query_cache이 문제를 해결 사용을 주셔서 감사합니다! 구체적으로 말하자면 컨트롤러 레벨에서 추가하기 전에 바로 전화하십시오. Workbench.poll_result(id)

관련 문제