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

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

Overview

Contiene métodos de suscripción comunes entre las suscripciones de monitoreo y eventos globales.

Desde:

  • 2.6.0

Resumen del método de instancia colapsar

Detalles del método de instancia

#subscribe(tema, suscriptor) ⇒ 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



105
106
107
# Archivo 'lib/mongo/monitoring.rb', línea 105

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

#suscriptoresHash<String, objeto>

Consigue todos los suscriptores.

Ejemplos:

Consigue todos los suscriptores.

monitoring.subscribers

Obtener a todos los suscriptores globales.

Mongo::Monitoring::Global.subscribers

Devuelve:

  • (Hash<Cadena, Objeto>)

    Los suscriptores.

Desde:

  • 2.1.0



157
158
159
# Archivo 'lib/mongo/monitoring.rb', línea 157

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:

  • (verdadero,falso)

    Si hay suscriptores para el tema.

Desde:

  • 2.1.0



174
175
176
# Archivo 'lib/mongo/monitoring.rb', línea 174

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

#cancelarsuscripción (tema, suscriptor) ⇒ 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 oyente se suscribió 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



138
139
140
141
142
143
144
# Archivo 'lib/mongo/monitoring.rb', línea 138

def cancelar suscripción(topic, suscriptor)
  subtítulos = subscribers_for(topic)
  index = subtítulos.index(suscriptor)
  si index
    subtítulos.eliminar_en(index)
  end
end