lib/celluloid/supervision/container.rb in celluloid-supervision-0.20.0.pre4 vs lib/celluloid/supervision/container.rb in celluloid-supervision-0.20.0.pre5

- old
+ new

@@ -16,12 +16,12 @@ end def top(options) { as: (options.delete(:as)), - branch: (options.delete(:branch) || :services), type: (options.delete(:type) || self), + branch: (options.delete(:branch) || :services), supervise: options.delete(:supervise) || [], } end # Actors or sub-applications to be supervised @@ -38,54 +38,39 @@ end container end # Run the application in the foreground with a simple watchdog - def run(_options) + def run(options={}) loop do - supervisor = run!(options = {}) + supervisor = run!(options) # Take five, toplevel supervisor sleep 5 while supervisor.alive? # Why 5? Internals::Logger.error "!!! Celluloid::Supervision::Container #{self} crashed. Restarting..." end end - - # Register one or more actors to be launched and supervised - def supervise(config, &block) - blocks << lambda do |container| - container.add(Configuration.options(config, block: block)) - end - end end - def supervise(config, &block) - add(Configuration.options(config, block: block)) - end - finalizer :finalize attr_accessor :registry # Start the container. def initialize(options={}) - options ||= {} options = {registry: options} if options.is_a? Internals::Registry @state = :initializing @actors = [] # instances in the container @registry = options.delete(:registry) || Celluloid.actor_system.registry @branch = options.delete(:branch) || :services yield current_actor if block_given? end - execute_block_on_receiver :initialize, :supervise # DEPRECIATED: , :supervise_as + execute_block_on_receiver :initialize, :supervise, :supervise_as def add(configuration) - unless configuration.is_a? Configuration::Instance - configuration = Configuration.options(configuration) - end - Configuration.valid? configuration, true + Configuration.valid?(configuration, true) @actors << Instance.new(configuration.merge(registry: @registry, branch: @branch)) @state = :running add_accessors configuration Actor.current end