이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.토토 커뮤니티 : 문서 : 17 : 32.9. 비동기 알림버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

30.7. 비동기 젠 토토

PostgreSQL제공 를 통한 비동기 젠 토토듣기그리고젠 토토명령. 클라이언트 세션 특정 통지 조건에 대한 관심을 등록합니다. 와 함께듣기명령(중지할 수 있음) 와 함께 듣는다듣지 않음명령). 특정 조건을 청취하는 모든 세션에 젠 토토이 전송됩니다. 비동기적으로 a젠 토토명령 해당 조건 이름을 가진 모든 세션에서 실행됩니다. 아니요 추가 정보가 젠 토토자에서 청취자. 따라서 일반적으로 필요한 실제 데이터는 전달된 내용은 데이터베이스 테이블을 통해 전송됩니다. 일반적으로, 조건 이름은 관련 테이블과 동일하지만 연관된 테이블이 있을 필요는 없습니다.

libpq신청서 제출듣기그리고듣지 않음일반 SQL 명령과 같은 명령입니다. 는 도착젠 토토메시지는 다음과 같습니다. 이후 호출을 통해 감지됩니다.PQ젠 토토.

함수PQ젠 토토반환 처리되지 않은 젠 토토 목록에서 다음 젠 토토 서버로부터 받은 메시지. 다음과 같은 경우 널 포인터를 반환합니다. 보류 중인 젠 토토이 없습니다. 일단 젠 토토은 에서 반환됨PQ젠 토토그렇습니다 처리된 것으로 간주되어 목록에서 제거됩니다. 젠 토토.

PGnotify *PQnotify(PGconn *conn);

   typedef 구조체 pgNotify 
       char *relname;              /* 젠 토토 조건 이름 */
       int be_pid;                /* 통지하는 서버 프로세스의 프로세스 ID */
       문자 *추가;                /* 젠 토토 매개변수 */
    PGnotify;

a 처리 후PGnotify객체 에 의해 반환됨PQ젠 토토, 꼭 무료로 제공PQfreemem. 그것은 를 해제하기에 충분합니다.PGnotify포인터;relname그리고추가필드는 별도를 나타내지 않습니다. 할당. (현재는추가필드는 사용되지 않으며 항상 빈 문자열을 가리킵니다.)

예 30-2비동기 사용을 보여주는 샘플 프로그램을 제공합니다. 젠 토토.

PQ젠 토토실제로는 그렇지 않습니다 서버에서 데이터를 읽습니다. 이전에 메시지를 반환합니다. 다른 사람에게 흡수됨libpq함수. 이전 릴리스에서libpq, 시기적절한 수신을 보장하는 유일한 방법 의젠 토토메시지는 지속적으로 전달되었습니다. 빈 명령이라도 명령을 제출하고 확인하세요.PQ젠 토토각각 이후PQexec. 이것이 여전히 작동하는 동안에는 처리 능력의 낭비로 인해 더 이상 사용되지 않습니다.

확인하는 더 좋은 방법젠 토토실행할 유용한 명령이 없을 때의 메시지는 호출하는 것입니다PQconsumeInput그런 다음 확인하세요PQ젠 토토. 당신은 사용할 수 있습니다선택()데이터가 도착할 때까지 기다리다 서버에서 no를 사용하여CPU할 일이 없다면 힘을 발휘하세요. (참조PQsocket파일을 얻으려면 함께 사용할 설명 번호선택().) 이 방법은 다음과 같은 경우에도 정상적으로 작동합니다. 다음을 사용하여 명령을 제출합니다.PQsendQuery/PQgetResult또는 간단히 사용PQexec. 하지만 반드시 확인해야 합니다.PQ젠 토토각각 이후PQgetResult또는PQexec, 젠 토토이 수신되었는지 확인 명령을 처리하는 동안.