웹 소켓이있는 Sinatra 앱을 쓰려고합니다. 내 Sinatra 응용 프로그램은 Postgres를 백엔드로 사용합니다 (웹 소켓없이 완벽하게 실행됩니다). 나는 내 애플 리케이션 ws 지원을 제공하기 위해 eventmachine
과 em-websocket
을 추가했다. 모든 것이 좋은 것을 제외하고는 x
요청 횟수를 초과하면 ActiveRecord ConnectionPool 시간 초과가 발생합니다. EventMachine이 DB 연결을 해제하지 않는 것 같지만 EM을 사용 해본 적이 없어서 무엇을해야할지 정확히 알지 못합니다. 모든 4 가지 (AR + EM + PG + Sinatra) 기술이 화염에 휩싸이지 않고 함께하는 가장 좋은 방법은 무엇입니까? 이상하게도 EM이 요청이 끝날 때 DB 연결을 해제하도록하는 일종의 ConnectionPool 젬을 찾거나 그러한 성격의 것을 찾으십시오.ActiveRecord + EventMachine + Postgres + Sinatra
2
A
답변
1
ActiveRecord에는 요청 후 연결을 올바르게 닫는 미들웨어 ActiveRecord::ConnectionAdapters::ConnectionManagement
이 있습니다. config.ru
에서 활성화 할 수 있습니다 (Sinatra 앱을 config.ru
파일로 시작한다고 가정합니다.과 함께 Sinatra를 사용하는 데 익숙하지 않은 경우 문서에 someinformation)가 있습니다. require ...
아래와 run ...
이상이 줄을 놓고 : 나는 그것을 정확히 어떻게을
use ActiveRecord::ConnectionAdapters::ConnectionManagement
사용합니까? 그 줄을 config.ru에두면됩니까? –
@hatboysam 업데이트 된 답변을 읽어보십시오. –