나는 mechanize로 사이트를 긁어 내고 mysql db를 밀고있다. 이 sys 읽기 오류가 많이 발생하고 해결책이 무엇인지 잘 모릅니다. Ruby-mysql gem을 사용하고 있습니다.`sysread ': 중단 된 시스템 호출 (Errno :: EINTR) Ruby와 mysql을 사용할 때
3
A
답변
2
내가 (+ mysql을 기계화) 똑같은 일을하고 있었는데, 나는 내 mysql을 포장하여 해결
A/구조/끝을 시작 절을 호출
begin
mysql_insert data
rescue Interrupt, Errno::EINTR
mysql_close connection
connection = mysql_connect
retry
end
참고 이것이 당신의 코드를 박았 무한 루프, 만약 당신이 뭔가를 사용하는 것이 진짜 나는 그것에 몇 가지 리미터를 넣어 것이 좋습니다. 모든 mysql_ *은 내 자신의 메소드입니다.
1
동일한 오류가 발생했습니다. 내 경우에 그것은 mysql-gem의 두 가지 다른 설치로 인해 발생했는데, 하나는 rvm gem
으로 설치되었고 다른 하나는 기본 osx 루비에서 설치되었습니다. 내가 기본 osx 루비를 실행할 때 rvm 설치 보석을 얻기 위해 bundler를 사용할 때 바이너리가 잘못된 루비에서 왔음에 틀림 없다.
rvm 환경을 검사하고 rvm installed gems 및 bundler 만 사용하면 문제가 해결되었습니다.
여기에서 중단 된 호출이 소켓 읽기 인 경우 동일한 삽입 쿼리를 두 번 실행하고 중복 데이터로 끝날 위험이 있습니까? –