2019-05-03 08:17:27 +10:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2013-02-08 22:03:45 +11:00
|
|
|
class MessageBusDiags
|
|
|
|
@host_info = {}
|
|
|
|
|
|
|
|
def self.my_id
|
2020-02-18 15:11:30 +11:00
|
|
|
@my_id ||= "#{Discourse.os_hostname}-#{Process.pid}"
|
2013-02-08 22:03:45 +11:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.seen_host(name)
|
|
|
|
@host_info[name] = DateTime.now
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.establish_peer_names
|
2017-07-28 10:20:09 +09:00
|
|
|
MessageBus.publish "/server-name", channel: "/server-name-reply/#{my_id}"
|
2013-02-08 22:03:45 +11:00
|
|
|
end
|
|
|
|
|
|
|
|
def self.seen_hosts
|
|
|
|
@host_info
|
|
|
|
end
|
2013-02-25 19:42:20 +03:00
|
|
|
|
2013-02-08 22:03:45 +11:00
|
|
|
unless @subscribed
|
2015-05-04 12:21:00 +10:00
|
|
|
MessageBus.subscribe "/server-name-reply/#{my_id}" do |msg|
|
2013-02-08 22:03:45 +11:00
|
|
|
MessageBusDiags.seen_host(msg.data)
|
|
|
|
end
|
|
|
|
|
2015-05-04 12:21:00 +10:00
|
|
|
MessageBus.subscribe "/server-name" do |msg|
|
|
|
|
MessageBus.publish msg.data["channel"], MessageBusDiags.my_id
|
2013-02-08 22:03:45 +11:00
|
|
|
end
|
|
|
|
@subscribed = true
|
|
|
|
end
|
|
|
|
end
|