UNLISTEN — 알림 수신 중지
UNLISTEN — 알림 수신 중지
NOTIFY 이벤트를 더 이상 받고 싶지 않을 때, 세션에 등록된 리스너(listener) 등록을 해제하는 명령이에요. LISTEN으로 걸어둔 알림 구독을 끊는 역할을 해요.
출처: PostgreSQL 문서
본문
Synopsis
UNLISTEN { channel | * }
설명 (Description)
UNLISTEN은 기존의 NOTIFY 이벤트 등록을 제거하는 데 사용돼요. UNLISTEN은 현재 PostgreSQL 세션이 channel이라는 이름의 알림 채널에 리스너로 등록한 기존 등록을 모두 취소해요. 특수 와일드카드 *는 현재 세션의 모든 리스너 등록을 취소해요.
LISTEN과 NOTIFY의 사용에 대한 더 자세한 설명은 NOTIFY 문서에 있어요.
매개변수 (Parameters)
channel
알림 채널의 이름(아무 식별자나 가능)이에요.
*
이 세션에 대한 현재의 모든 리슨 등록이 지워져요.
참고 (Notes)
듣고 있지 않던 것을 unlisten해도 문제없어요. 경고나 오류가 나타나지 않아요.
각 세션의 끝에서 UNLISTEN *가 자동으로 실행돼요.
UNLISTEN을 실행한 트랜잭션은 2단계 커밋(two-phase commit)을 위해 준비할 수 없어요.
예시 (Examples)
등록을 만들려면:
LISTEN virtual;
NOTIFY virtual;
Asynchronous notification "virtual" received from server process with PID 8448.
UNLISTEN이 실행되면 이후의 NOTIFY 메시지는 무시돼요:
UNLISTEN virtual;
NOTIFY virtual;
-- no NOTIFY event is received
호환성 (Compatibility)
SQL 표준에는 UNLISTEN 명령이 없어요.
더 알아보기 (Learn more)
- 알림을 구독하는
LISTEN명령과 알림을 보내는NOTIFY명령을 같이 알아두면 돼요. - 비동기 알림(asynchronous notification)의 전체적인 흐름은
NOTIFY문서에서 더 자세히 볼 수 있어요.