class ActiveWorker::Controller
Attributes
configuration[R]
Public Class Methods
after_thread_launch(method)
click to toggle source
# File lib/active_worker/controller.rb, line 68 def self.after_thread_launch(method) after_thread_launch_methods << method end
after_thread_launch_methods()
click to toggle source
# File lib/active_worker/controller.rb, line 72 def self.after_thread_launch_methods @after_thread_launch_methods ||= [] end
execute(configuration)
click to toggle source
# File lib/active_worker/controller.rb, line 21 def self.execute(configuration) worker = new(configuration) worker.started worker.execute worker.finished end
execute_expanded(configuration_id)
click to toggle source
# File lib/active_worker/controller.rb, line 8 def self.execute_expanded(configuration_id) config = Configuration.find(configuration_id) configurations = config.expand_for_threads execute_concurrently(configurations) after_thread_launch_methods.each { |method| send(method, config, configurations) } wait_for_children ensure worker_cleanup_methods.each { |method| send(method, configurations) } end
handle_error(error, method, params)
click to toggle source
# File lib/active_worker/controller.rb, line 28 def self.handle_error(error, method, params) configuration_id = params.shift configuration = Configuration.find(configuration_id) if threaded? FailureEvent.from_error(configuration, error) end if forking? && parent? ParentEvent.create_error_from_configuration(configuration, error) kill_children wait_for_children end if forked? FailureEvent.create_error_from_configuration(configuration, error) end rescue Exception => e puts "ERROR: While Handling #{error} Had : #{e}\n#{e.backtrace.join("\n")}" end
handle_termination(params)
click to toggle source
# File lib/active_worker/controller.rb, line 50 def self.handle_termination(params) if forking? && parent? kill_children wait_for_children end configuration_id = params.shift configuration = Configuration.find(configuration_id) if threaded? TerminationEvent.from_termination(configuration) end if forked? TerminationEvent.create_termination_from_configuration(configuration) end end
new(configuration)
click to toggle source
# File lib/active_worker/controller.rb, line 84 def initialize(configuration) @configuration = configuration setup end
worker_cleanup(method)
click to toggle source
# File lib/active_worker/controller.rb, line 76 def self.worker_cleanup(method) worker_cleanup_methods << method end
worker_cleanup_methods()
click to toggle source
# File lib/active_worker/controller.rb, line 80 def self.worker_cleanup_methods @worker_cleanup_methods ||= [] end
Public Instance Methods
execute()
click to toggle source
# File lib/active_worker/controller.rb, line 97 def execute raise "Can't call execute on base controller #{configuration.inspect}'" end
finished()
click to toggle source
# File lib/active_worker/controller.rb, line 101 def finished configuration.finished end
setup()
click to toggle source
# File lib/active_worker/controller.rb, line 89 def setup end
started()
click to toggle source
# File lib/active_worker/controller.rb, line 93 def started configuration.started end
Private Instance Methods
finished?(configurations)
click to toggle source
# File lib/active_worker/controller.rb, line 107 def finished?(configurations) FinishedEvent.exists_for_configurations?(configurations) end