2016-08-08 4 views
0

나는 많은 작업자 프로세스가 하나의 마스터 프로세스에서 생성되는 프로세스 인프라에 대해 생각하고 있습니다. 각 작업자는 하나의 장기 실행 작업을 실행하고 작업을 마친 후 종료됩니다. 24 시간 내에 약 10 만 건의 과제가 있습니다. Postgres 데이터베이스에 작업 결과를 기록해야 할 때까지는 문제가되지 않습니다. 하루 100,000 개의 단일 데이터베이스 연결로 이어질 수 있기 때문입니다.루비 다중 프로세스 역방향 연결

제 질문은 : 마스터 프로세스에서 연결 풀과 같은 것을 처리하고 연결을 자식 프로세스에 넘기는 방법이 있습니까? 그리고 그것이 완료 될 때까지 아이가 연결을 종료하지 않습니다, 가능할 것이다 (프로세스의 소유자가 마스터 과정이기 때문에)

답변

0

PostgreSQL을 적어도 두 일반적으로 사용되는 연결 poolers 있습니다

pgbouncer을 - https://pgbouncer.github.io/features.html

pgpool - 자신의 기능 세트가 모두있는 http://www.pgpool.net/mediawiki/index.php/Documentation

. 두 가지를 모두 평가하고 가장 적합한 것이 무엇인지 확인하십시오. 예를 들어 pgbouncer의 트랜잭션 풀링을 사용하여 자식 작업자 중 하나가 처리하는 동안 연결을 생성 할 수 있습니다. 이 프로세스가 완료되면 연결을 풀로 다시 풀어줍니다. 동시성의 양을 처리하기 위해 다중 연결 풀이 필요할 것 같습니다.