Class: WarouzServer::Worker

Inherits:
Object
  • Object
show all
Includes:
MysqlManager
Defined in:
lib/warouz_server/worker.rb

Instance Method Summary collapse

Methods included from MysqlManager

#connect, #execute_query

Constructor Details

#initializeWorker

Returns a new instance of Worker.



4
5
6
7
8
9
10
# File 'lib/warouz_server/worker.rb', line 4

def initialize
  self.master=WarouzServer::Master.instance
  self.logger=master.logger
  self.running=true
  self.database = connect
  logger.info("#{self.class.name} is initialized.")
end

Instance Method Details

#startObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/warouz_server/worker.rb', line 12

def start
  while running do
    event=master.events.pop 
    begin
      query=build_insert_query(event)
      execute_query(database,query)
    rescue => e
      logger.error("#{Thread.current.object_id} failed to process... \n {e}")
    end
    logger.debug("Process event #{event.class} by thread #{Thread.current.object_id}.")
  end
  # Graceful stop
  database.close if database
  nil
end

#stopObject



28
29
30
31
# File 'lib/warouz_server/worker.rb', line 28

def stop
  self.running=false
  nil
end