模块:Mongo::Monitoring::Subscribable
- 包含在:
- Mongo::Monitoring ,全局
- 定义于:
- 构建/ruby-driver-v2.19/lib/ mongo / 监控.rb
Overview
包含监控事件订阅和全局事件订阅之间通用的订阅方法。
实例方法摘要折叠
-
# 订阅 (主题,subscriber) ⇒ Object
将侦听器订阅事件主题。
-
#subscribers ⇒ Hash< string , Object>
获取所有订阅者。
-
#订阅者? (主题) ⇒ true, false
确定特定事件是否有订阅者。
-
# unsubscribe (主题,subscriber) ⇒ Object
取消监听器对事件主题的订阅。
实例方法详细信息
# 订阅 (主题,subscriber) ⇒ Object
注意:
可以将同一侦听器订阅同一主题
将侦听器订阅事件主题。
多次,在这种情况下,监听器被调用的次数与订阅的次数相同,要取消订阅,需要执行相同次数的取消订阅调用。
105 106 107 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 105 def 订阅(topic, 订阅者) subscribers_for(topic).推动(订阅者) end |
#subscribers ⇒ Hash< string , Object>
获取所有订阅者。
157 158 159 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 157 def 订阅者 @subscribers ||= {} end |
#订阅者? (topic) ⇒ true , false
确定特定事件是否有订阅者。
174 175 176 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 174 def 订户?(topic) !subscribers_for(topic).空? end |
# unsubscribe (topic,subscriber) ⇒ Object
注意:
全局订阅者注册表与每个客户端订阅者注册表是分开的。 同一个订阅者可以订阅来自特定客户端的事件,也可以订阅全局的事件;全局取消订阅不会使该订阅者从其显式订阅的客户端取消订阅。
注意:
目前,每当创建客户端时,都会将全局订阅者列表复制到客户端中。 因此,在全局范围内取消订阅订阅者对现有客户端没有影响,它们将继续向取消订阅的订阅者发送事件。
取消监听器对事件主题的订阅。
如果侦听器多次订阅事件主题,则此调用将删除单个订阅。
如果侦听器未订阅主题,则此操作为空操作,不会引发异常。
138 139 140 141 142 143 144 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/monitoring.rb', line 138 def 取消订阅(topic, 订阅者) subs = subscribers_for(topic) 索引(index) = subs.索引(index)(订阅者) if 索引(index) subs.delete_at(索引(index)) end end |