| 토토 핫 9.1.24 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.1 : 빠른 경로 사설 토토 사이트 | 위로 | 31장.libpq- C 라이브러리 | 다음 | |
토토 핫제공 를 통한 비동기 알림듣기그리고알림명령. 클라이언트 세션 특정 알림 채널에 대한 관심을 등록합니다.듣기명령(중지할 수 있음) 와 함께 듣는다듣지 않음명령). 특정 채널을 청취하는 모든 세션에 알림이 전송됩니다. 비동기적으로 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그리고추가필드는 별도를 나타내지 않습니다.
할당. (이 필드의 이름은 역사적입니다.
특히 채널 이름은 채널 이름과 아무 관련이 없어도 됩니다.
관계 이름.)
예 31-2비동기 사용을 보여주는 샘플 프로그램을 제공합니다. 알림.
PQ알림실제로는 그렇지 않습니다
서버에서 데이터를 읽습니다. 이전에 메시지를 반환합니다.
다른 사람에게 흡수됨libpq함수. 이전 릴리스에서libpq, 시기적절한 수신을 보장하는 유일한 방법
의알림메시지는 지속적으로 전달되었습니다.
빈 명령이라도 명령을 제출하고 확인하세요.PQ알림각각 이후PQexec. 이것이 여전히 작동하는 동안에는
처리 능력의 낭비로 인해 더 이상 사용되지 않습니다.
확인하는 더 좋은 방법알림실행할 유용한 명령이 없을 때의 메시지는 호출하는 것입니다PQconsumeInput그런 다음 확인하세요PQ알림. 당신은 사용할 수 있습니다선택()데이터가 도착할 때까지 기다리다
서버에서 no를 사용하여CPU할 일이 없다면 힘을 발휘하세요.
(참조PQsocket파일을 얻으려면
함께 사용할 설명 번호선택().) 다음과 같은 경우에는 정상적으로 작동합니다.
다음을 사용하여 명령을 제출합니다.PQsendQuery/PQgetResult또는 간단히 사용PQexec. 하지만 반드시 확인해야 합니다.PQ알림각각 이후PQgetResult또는PQexec, 알림이 수신되었는지 확인
명령을 처리하는 동안.