class StompServer::QueueMonitor
Public Class Methods
new(qstore,queues)
click to toggle source
# File lib/stomp_server/queue_manager.rb, line 23 def initialize(qstore,queues) @qstore = qstore @queues = queues @stompid = StompServer::StompId.new puts "QueueManager initialized" end
Public Instance Methods
monitor(count)
click to toggle source
# File lib/stomp_server/queue_manager.rb, line 35 def monitor(count) return unless @qstore.methods.include?('monitor') users = @queues['/queue/monitor'] return if users.size == 0 stats = @qstore.monitor return if stats.size == 0 body = '' stats.each do |queue,qstats| body << "Queue: #{queue}\n" qstats.each {|stat,value| body << "#{stat}: #{value}\n"} body << "\n" end headers = { 'message-id' => @stompid[count], 'destination' => '/queue/monitor', 'content-length' => body.size.to_s } frame = StompServer::StompFrame.new('MESSAGE', headers, body) users.each {|user| user.connection.stomp_send_data(frame)} end
start()
click to toggle source
# File lib/stomp_server/queue_manager.rb, line 30 def start count =0 EventMachine::add_periodic_timer 5, proc {count+=1; monitor(count) } end