Method: Workling::Invokers::ThreadedPoller#listen

Defined in:
lib/workling/invokers/threaded_poller.rb

#listenObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/workling/invokers/threaded_poller.rb', line 22

def listen
  # Create a thread for each worker.
  Workling::Discovery.discovered_workers.each do |clazz|
    logger.debug("Discovered listener #{clazz}")
    @workers.add(Thread.new(clazz) { |c| clazz_listen(c) })
  end

  # Wait for all workers to complete
  @workers.list.each { |t| t.join }

  logger.debug("Reaped listener threads. ")

  # Clean up all the connections.
  if defined?(ActiveRecord::Base)
    ActiveRecord::Base.verify_active_connections!
  end

  logger.debug("Cleaned up connection: out!")
end