2014-11-08 2 views

답변

1

결과를 기다리지 않고 PGexec 대신 PQSendQuery (및 관련 기능)을 사용하여 연결에서 하나 이상의 통화를 수행 할 수 있습니다. 자세한 내용은 http://www.postgresql.org/docs/9.3/static/libpq-async.html을 참조하십시오. 첫 번째 작업을 기다리지 않고 여러 번 호출을 원한다면 어떤 종류의 대기열 메커니즘이 필요할 것입니다.

0

클라이언트 드라이버에 따라 다릅니다.

프로토콜 수준에서는 기다릴 필요가 없습니다. 당신은 Bind, Parse, Execute, Sync를 보내고 원하는 것을 계속할 수 있으며, 나중에 서버로부터의 입력을 소비 할 수 있습니다.

libpq는 비동기 작업을 통해 제한된 범위 내에서이를 지원합니다.

대부분의 드라이버는이 기능을 드러내지 않습니다. 예를 들어 PgJDBC는 삽입을 비동기 적으로 실행할 수있는 방법이 없습니다 (일괄 처리 모드에서는 개별 삽입이 비동기이지만 끝 부분의 전체 배치 결과를 기다리는 경우는 제외).

클라이언트 드라이버와 함께 사용할 수있는 기능은 별도의 스레드에 삽입 기능을 추가하는 것입니다. 그것은 기다릴 수 있고, 앱의 나머지 부분은 무엇이든하고 싶어한다.

관련 문제