Method: ActiveMessaging::ThreadedPoller#start
- Defined in:
- lib/activemessaging/threaded_poller.rb
#start ⇒ Object
| 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | # File 'lib/activemessaging/threaded_poller.rb', line 37 def start logger.info "ActiveMessaging::ThreadedPoller start" # these are workers ready to use self.workers = [] # these are workers already working self.busy = [] # this indicates if we are running or not, helps threads to stop gracefully self.running = true # subscribe will create the connections based on subscriptions in processsors # (you can't find or use the connection until it is created by calling this) ActiveMessaging::Gateway.subscribe # create a message receiver actor, ony need one, using connection receiver_connection = ActiveMessaging::Gateway.connection(connection) self.receiver = MessageReceiver.new(current_actor, receiver_connection, pause) # start the workers based on the config configuration.each do |c| (c[:pool_size] || 1).times{ self.workers << Worker.new_link(current_actor, c) } end # once all workers are created, start them up self.workers.each{|worker| receive(worker)} # in debug level, log info about workers every 10 seconds log_status end |