ActiveRecord에서 mysql 쿼리 시간 초과를 설정하려면 어떻게해야합니까? 10-15ms와 같이 매우 짧게 설정하고 싶습니다. 이것은 Sinatra 루비 웹 앱을위한 것입니다.mysql에 대해 ActiveRecord 쿼리 제한 시간을 어떻게 설정합니까?
감사합니다.
ActiveRecord에서 mysql 쿼리 시간 초과를 설정하려면 어떻게해야합니까? 10-15ms와 같이 매우 짧게 설정하고 싶습니다. 이것은 Sinatra 루비 웹 앱을위한 것입니다.mysql에 대해 ActiveRecord 쿼리 제한 시간을 어떻게 설정합니까?
감사합니다.
글쎄,
@connection.options(Mysql::OPT_READ_TIMEOUT, @config[:read_timeout]) if @config[:read_timeout]
@connection.options(Mysql::OPT_WRITE_TIMEOUT, @config[:write_timeout]) if @config[:write_timeout]
한 필요가 단순히에만 .yaml 데이터베이스 설정 파일에 read_timeout 및 write_timeout 값을 추가,이 라인 (29)과 mysql_adapter.rb 30 당이 나타날 것입니다.
따라서
,development:
adapter: mysql
encoding: utf8
database: app_development
pool: 5
username: root
password:
write_timeout: 1
read_timeout: 1
은 개당 1 초 읽기 및 쓰기 시간 제한을 설정하는 트릭을 할해야합니다. 불행하게도 이것은 초 단위의 타임 아웃을 설정할 수는 없습니다. 나는 기본 read_timeout을 가지고 예를 들어이 일을 해요
ActiveRecord::Base.connection.instance_variable_get('@connection').instance_variable_set('@read_timeout', 0)
,하지만 내 긴 실행 야간 스크립트를 오버라이드 (override) :
당신은 또한이 같은 연결 단위로 설정할 수 있습니다.
나는 [다른 질문에 대한 답변] (http://stackoverflow.com/a/37937788/316700)에서이 점에 대한 조사 결과가 있습니다. – fguillen