Módulo: Mongo::supervisión::Subscribable

Incluido en:
Mongo::supervisión, Global
Definido en:
lib/mongo/supervisión.rb

Overview

Incluye métodos de suscripción comunes entre la supervisión y las suscripciones a eventos globales.

Desde:

  • 2.6.0

Resumen del método de instancia colapsar

Detalles del método de instancia

#subscribe(topic, subscriber) ⇒ Objeto

Nota:

Es posible suscribirse con el mismo listener al mismo tema

Suscribirse un listener a un tema de evento.

varias veces, en cuyo caso el listener será invocado tantas veces como esté suscrito y para desuscribirse serán necesarias el mismo número de llamadas a desuscribirse.

Ejemplos:

Suscríbete al tema.

monitoring.subscribe(QUERY, subscriber)

Suscríbete al tema a nivel global.

Monitoring::Global.subscribe(QUERY, subscriber)

Parámetros:

  • topic (string)

    El tema del evento.

  • suscriptor (objeto)

    El suscriptor para gestionar el evento.

Desde:

  • 2.1.0



103
104
105
# Archivo 'lib/mongo/supervisión.rb', línea 103

def suscribirse(topic, suscriptor)
  subscribers_for(topic).push(suscriptor)
end

#suscriptoresHash<String, objeto>

Obtén todos los suscriptores.

Ejemplos:

Obtén todos los suscriptores.

monitoring.subscribers

Obtener a todos los suscriptores globales.

Mongo::Monitoring::Global.subscribers

Devuelve:

  • (Hash<String, Object>)

    Los suscriptores.

Desde:

  • 2.1.0



155
156
157
# Archivo 'lib/mongo/supervisión.rb', línea 155

def suscriptores
  @subscribers ||= {}
end

#¿suscriptores?(tema) ⇒ verdadero, falso

Determine si hay suscriptores para un evento en particular.

Ejemplos:

¿Hay suscriptores?

monitoring.subscribers?(COMMAND)

¿Hay suscriptores globales?

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

Parámetros:

  • topic (string)

    El tema del evento.

Devuelve:

  • (true, false)

    Si hay suscriptores para el tema.

Desde:

  • 2.1.0



172
173
174
# Archivo 'lib/mongo/supervisión.rb', línea 172

def ¿suscriptores?(topic)
  !subscribers_for(topic).¿vacío?
end

#unsubscribe(tema, subscriber) ⇒ objeto

Nota:

El registro global de suscriptores está separado del registro de suscriptores por cliente. El mismo suscriptor puede estar suscrito a eventos de un cliente particular, así como globalmente; darse de baja globalmente no dará de baja a ese suscriptor del cliente al que se suscribió explícitamente.

Nota:

Actualmente, la lista de suscriptores globales se copia en un cliente cada vez que se crea este cliente. Por lo tanto, cancelar la suscripción de un suscriptor de forma global no tiene efecto en los clientes existentes; seguirán enviando eventos al suscriptor dado de baja.

Cancelar la suscripción de un oyente a un tema de eventos.

Si el suscriptor estaba suscrito al tema del evento varias veces, esta llamada elimina una sola suscripción.

Si el receptor no estaba suscrito al tema, esta operación es una acción sin efectos y no se lanza ninguna excepción.

Ejemplos:

Cancelar la suscripción al tema.

monitoring.unsubscribe(QUERY, subscriber)

Darse de baja del tema globalmente.

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

Parámetros:

  • topic (string)

    El tema del evento.

  • suscriptor (objeto)

    El suscriptor que se desuscribirá.

Desde:

  • 2.6.0



136
137
138
139
140
141
142
# Archivo 'lib/mongo/supervisión.rb', línea 136

def cancelar suscripción(topic, suscriptor)
  subtítulos = subscribers_for(topic)
  index = subtítulos.index(suscriptor)
  return a menos que index

  subtítulos.delete_at(index)
end