모듈: Mongo::Mongoing::Subscribable

포함 항목:
Mongo::Mongoing, 글로벌
다음에 정의됨:
빌드/ Ruby-driver-v2.19/lib/mongo/ 모니터링.rb

개요

모니터링 과 글로벌 이벤트 구독 간에 일반적인 구독 메서드가 포함되어 있습니다.

이후:

  • 2.6.0

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#구독(주제,subscriber) ⇒ 객체

참고:

동일한 리스너가 동일한 주제 를 구독 하는 것이 가능합니다.

이벤트 주제 에 대한 리스너를 구독합니다.

이 경우 리스너는 구독된 횟수만큼 호출되며 구독을 취소하려면 동일한 횟수의 구독 취소 호출이 필요합니다.

예시:

주제 를 구독합니다.

monitoring.subscribe(QUERY, subscriber)

주제 를 전 세계적으로 구독합니다.

Monitoring::Global.subscribe(QUERY, subscriber)

매개변수:

  • 주제 (string)

    이벤트 주제입니다.

  • 구독자 (객체)

    이벤트를 처리할 구독자입니다.

이후:

  • 2.1.0



105
106
107
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 105

def 구독(주제, 구독자)
  subscribers_for(주제).push(구독자)
end

#subscribersHash<string, Object>

모든 구독자를 가져옵니다.

예시:

모든 구독자를 가져옵니다.

monitoring.subscribers

모든 글로벌 구독자를 확보하세요.

Mongo::Monitoring::Global.subscribers

반환합니다:

  • (Hash<string, Object>)

    구독자.

이후:

  • 2.1.0



157
158
159
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 157

def 구독자
  @subscribers ||= {}
end

구독자가 #명인가요?(주제) ⇒ true, false

특정 이벤트 에 대한 구독자가 있는지 확인합니다.

예시:

구독자가 있나요?

monitoring.subscribers?(COMMAND)

글로벌 구독자가 있나요?

Mongo::Monitoring::Global.subscribers?(COMMAND)

매개변수:

  • 주제 (string)

    이벤트 주제입니다.

반환합니다:

  • (true, false)

    주제 에 대한 구독자가 있는 경우.

이후:

  • 2.1.0



174
175
176
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 174

def 구독자?(주제)
  !subscribers_for(주제).비어 있나요?
end

#unsubscribe(topic,subscriber) ⇒ 객체

참고:

글로벌 구독자 레지스트리는 클라이언트별 구독자 레지스트리와 별개입니다. 동일한 구독자가 특정 클라이언트 의 이벤트뿐만 아니라 전 세계적으로 이벤트를 구독할 수 있습니다. 전역적으로 구독을 취소해도 명시적으로 구독한 클라이언트 에서는 해당 구독자의 구독이 취소되지 않습니다.

참고:

현재 글로벌 구독자 목록은 클라이언트가 생성될 때마다 클라이언트에 복사됩니다. 따라서 전역적으로 구독자의 구독을 취소해도 기존 클라이언트에는 영향을 주지 않으며, 구독하지 않은 구독자에게 이벤트를 계속 전송합니다.

이벤트 주제 에서 리스너 구독을 취소합니다.

리스너가 이벤트 주제 를 여러 번 구독한 경우 이 호출은 단일 구독 을 제거합니다.

리스너가 주제 를 구독하지 않은 경우 이 작업은 작동하지 않으며 예외가 발생하지 않습니다.

예시:

주제 에서 구독을 취소합니다.

monitoring.unsubscribe(QUERY, subscriber)

주제 를 전체적으로 구독 취소합니다.

Mongo::Monitoring::Global.unsubscribe(QUERY, subscriber)

매개변수:

  • 주제 (string)

    이벤트 주제입니다.

  • 구독자 (객체)

    구독을 취소할 구독자입니다.

이후:

  • 2.6.0



138
139
140
141
142
143
144
# 파일 'build/ Ruby-driver-v2.19/lib/mongo/monitoring.rb', 줄 138

def 구독 취소(주제, 구독자)
  subs = subscribers_for(주제)
  index = subs.index(구독자)
  만약 index
    subs.delete_at(index)
  end
end