토토 꽁 머니 9.3.25 문서화 | ||||
---|---|---|---|---|
PostgreSQL : 문서 : 9.3 : 빠른 경로 토토 결과 | PostgreSQL : 문서 : 9.3 : LIBPQ -C 토토 커뮤니티 | 31 장.libpq-C 라이브러리 | 스포츠 토토 : 문서 : 9.3 : 스포츠 토토 명령과 관련된 기능 |
토토 꽁 머니비동기식을 제공합니다 를 통한 알림듣기andNotify명령. 클라이언트 세션이 등록합니다 와의 특정 알림 채널에 대한 관심듣기명령 (그리고Unlisten명령). 모든 세션 듣기 특정 채널에서 a 일 때 비동기 적으로 알림을받습니다.Notify해당 채널 이름이있는 명령 모든 세션에서 실행. 에이"페이로드"String을 전달하여 추가 데이터를 전달할 수 있습니다. 청취자.
libpq신청서 제출듣기, Unlisten,
그리고Notify일반 SQL로 명령
명령. 의 도착알림메시지
이후에 전화하여 감지 할 수 있습니다pqnotifies
.
함수pqnotifies
반환
처리되지 않은 알림 목록에서 다음 알림
서버에서받은 메시지. IF가 널 포인터를 반환합니다
보류중인 알림이 없습니다. 알림이 반환되면
에서pqnotifies
, 그것은 고려됩니다
알림 목록에서 처리되고 제거됩니다.
pgnotify *pqnotifies (pgconn *conn); typedef struct pgnotify char *relname; / * 알림 채널 이름 */ int be_pid; / * 서버 프로세스 알림의 프로세스 ID */ char *엑스트라; / * 알림 페이로드 문자열 */ pgnotify;
처리 후pgnotify개체
반품pqnotifies
로 무료PQFREEMEM
. 그것은
자유를 해방시키기에 충분합니다pgnotify포인터; 그만큼Relnameand추가필드는 별도를 나타내지 않습니다
할당. (이 분야의 이름은 역사적입니다
특히, 채널 이름은 아무 관련이 없을 필요가 없습니다.
관계 이름.)
예 31-2비동기 사용을 보여주는 샘플 프로그램을 제공합니다. 공고.
pqnotifies
실제로 읽지 않습니다
서버의 데이터; 이전에 흡수 된 메시지를 반환합니다
다른 사람으로libpq함수. ~ 안에
의 사전 릴리스libpq, 유일한 것
적시에 수령하는 방법Notify메시지는 끊임없이 명령, 심지어는 명령을 제출하는 것이 었습니다.
그런 다음 확인pqnotifies
각각PQEXEC
. 이것이 여전히 작동하는 동안, 그것은입니다
처리 전력 낭비로 더 이상 사용되지 않습니다.
확인하는 더 좋은 방법Notify유용한 명령이없는 경우 전화하는 것입니다pqconsumeInput
, checkpqnotifies
. 사용할 수 있습니다select ()
데이터가 도착할 때까지 기다립니다
서버, 따라서 NO 사용CPU할 일이 없다면 힘. (보다pqsocket
파일 디스크립터 번호를 얻으려면
사용select ()
.)이 점에 유의하십시오
당신이 명령을 제출하든pqsendquery
/pqgetresult
또는 간단히 사용PQEXEC
. 그러나 확인해야합니다pqnotifies
각각pqgetresult
또는PQEXEC
, 알림이 들어 있는지 확인하십시오
명령 처리 중에.
이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
빠른 경로 인터페이스 | PostgreSQL : 문서 : 9.3 : LIBPQ -C 토토 커뮤니티 | 기능 관련 기능 와 함께COPY명령 |