UNLISTEN — 알림 수신 중지

UNLISTEN — 알림 수신 중지

NOTIFY 이벤트를 더 이상 받고 싶지 않을 때, 세션에 등록된 리스너(listener) 등록을 해제하는 명령이에요. LISTEN으로 걸어둔 알림 구독을 끊는 역할을 해요.

출처: PostgreSQL 문서

본문

Synopsis

UNLISTEN { channel | * }

설명 (Description)

UNLISTEN은 기존의 NOTIFY 이벤트 등록을 제거하는 데 사용돼요. UNLISTEN은 현재 PostgreSQL 세션이 channel이라는 이름의 알림 채널에 리스너로 등록한 기존 등록을 모두 취소해요. 특수 와일드카드 *는 현재 세션의 모든 리스너 등록을 취소해요.

LISTENNOTIFY의 사용에 대한 더 자세한 설명은 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 문서에서 더 자세히 볼 수 있어요.