Módulo: Mongo::Monitoreo::Suscribible
- Incluido en:
- Mongo::Monitoreo, Global
- Definido en:
- lib/mongo/monitoring.rb
Overview
Contiene métodos de suscripción comunes entre las suscripciones de monitoreo y eventos globales.
Colapso del resumen del método de instancia
-
#subscribe(tema, suscriptor) ⇒ Objeto
Suscribir a un oyente a un tema de evento.
-
#suscriptores ⇒ Hash<Cadena, Objeto>
Consigue todos los suscriptores.
-
#suscriptores?(tema) ⇒ verdadero, falso
Determinar si hay suscriptores para un evento en particular.
-
#cancelarsuscripción (tema, suscriptor) ⇒ Objeto
Cancelar la suscripción de un oyente de un tema de evento.
Detalles del método de instancia
#subscribe(tema, suscriptor) ⇒ Objeto
Es posible suscribir al mismo oyente al mismo tema.
Suscribir a un oyente a un tema de evento.
varias veces, en cuyo caso se invocará al oyente tantas veces como esté suscrito y para desuscribirlo se necesitarán el mismo número de llamadas de desuscripción.
105 106 107 |
# Archivo 'lib/mongo/monitoring.rb', línea 105 def Suscríbete(tema, abonado) suscriptores_para(tema).Push(abonado) end |
#suscriptores ⇒ Hash<Cadena, Objeto>
Consigue todos los suscriptores.
157 158 159 |
# Archivo 'lib/mongo/monitoring.rb', línea 157 def suscriptores @suscriptores ||= {} end |
#suscriptores?(tema) ⇒ verdadero, falso
Determinar si hay suscriptores para un evento en particular.
174 175 176 |
# Archivo 'lib/mongo/monitoring.rb', línea 174 def ¿suscriptores?(tema) !suscriptores_para(tema).¿vacío? end |
#cancelarsuscripción (tema, suscriptor) ⇒ Objeto
El registro global de suscriptores es independiente del registro de suscriptores por cliente. Un mismo suscriptor puede estar suscrito a eventos de un cliente específico y también a nivel global; cancelar la suscripción global no cancelará la suscripción de ese suscriptor del cliente al que estaba suscrito explícitamente.
Actualmente, la lista de suscriptores globales se copia en un cliente cada vez que este se crea. Por lo tanto, dar de baja a un suscriptor globalmente no afecta a los clientes existentes; estos seguirán enviando eventos al suscriptor dado de baja.
Cancelar la suscripción de un oyente de un tema de evento.
Si el oyente se suscribió al tema del evento varias veces, esta llamada elimina una sola suscripción.
Si el oyente no estaba suscrito al tema, esta operación no es necesaria y no se generan excepciones.
138 139 140 141 142 143 144 |
# Archivo 'lib/mongo/monitoring.rb', línea 138 def cancelar la suscripción(tema, abonado) subs = suscriptores_para(tema) index = subs.index(abonado) Si index subs.eliminar_en(index) end end |