| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.3 : 빠른 경로 토토 결과 | PostgreSQL : 문서 : 9.3 : LIBPQ -C 토토 커뮤니티 | 31장.libpq- C 라이브러리 | 스포츠 토토 : 문서 : 9.3 : 스포츠 토토 명령과 관련된 기능 | |
포스트그레SQL비동기 제공 다음을 통한 알림듣기그리고알림명령. 클라이언트 세션은 특정 알림 채널에 대한 관심듣기명령(다음을 사용하여 듣기를 중지할 수 있습니다.듣지 않음명령). 모든 세션 청취 특정 채널에서 다음과 같은 경우 비동기적으로 알림을 받게 됩니다.알림해당 채널 이름을 가진 명령은 다음과 같습니다 모든 세션에서 실행됩니다. 갑"페이로드"문자열을 전달하여 추가 데이터를 청취자.
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, 알림이 수신되었는지 확인
명령을 처리하는 동안.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 빠른 길 인터페이스 | PostgreSQL : 문서 : 9.3 : LIBPQ -C 토토 커뮤니티 | 관련 기능 와 함께복사명령 |