2011-03-19 5 views

답변

2
내가 (+ mysql을 기계화) 똑같은 일을하고 있었는데, 나는 내 mysql을 포장하여 해결

A/구조/끝을 시작 절을 호출

begin 
    mysql_insert data 
rescue Interrupt, Errno::EINTR 
    mysql_close connection 
    connection = mysql_connect 
    retry 
end 

참고 이것이 당신의 코드를 박았 무한 루프, 만약 당신이 뭔가를 사용하는 것이 진짜 나는 그것에 몇 가지 리미터를 넣어 것이 좋습니다. 모든 mysql_ *은 내 자신의 메소드입니다.

+1

여기에서 중단 된 호출이 소켓 읽기 인 경우 동일한 삽입 쿼리를 두 번 실행하고 중복 데이터로 끝날 위험이 있습니까? –

1

동일한 오류가 발생했습니다. 내 경우에 그것은 mysql-gem의 두 가지 다른 설치로 인해 발생했는데, 하나는 rvm gem으로 설치되었고 다른 하나는 기본 osx 루비에서 설치되었습니다. 내가 기본 osx 루비를 실행할 때 rvm 설치 보석을 얻기 위해 bundler를 사용할 때 바이너리가 잘못된 루비에서 왔음에 틀림 없다.

rvm 환경을 검사하고 rvm installed gems 및 bundler 만 사용하면 문제가 해결되었습니다.