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.
Resumen del método de instancia colapsar
-
#suscribirse(tema, suscriptor) ⇒ objeto
Suscribirse un listener a un tema de evento.
-
#suscriptores ⇒ Hash<Cadena, Objeto>
Consigue todos los suscriptores.
-
#subscribers?(tema) ⇒ verdadero, falso
Determine si hay suscriptores para un evento en particular.
-
#unsubscribe(topic, subscriber) ⇒ Object
Cancelar la suscripción de un oyente a un tema de eventos.
Detalles del método de instancia
#subscribe(tema, suscriptor) ⇒ Objeto
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.
105 106 107 |
# Archivo 'lib/mongo/monitoring.rb', línea 105 def suscribirse(topic, suscriptor) subscribers_for(topic).push(suscriptor) end |
#suscriptores ⇒ Hash<String, objeto>
Consigue todos los suscriptores.
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.
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
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.
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.
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 |