Method: Collective::Worker#initialize
- Defined in:
- lib/collective/worker.rb
#initialize(prototype_job, options = {}) ⇒ Worker
Returns a new instance of Worker.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/collective/worker.rb', line 46 def initialize( prototype_job, = {} ) @policy = [:policy] || Collective::Policy.resolve @name = [:name] || policy.name || prototype_job.to_s @storage = policy.storage @registry = [:registry] || Collective::Registry.new( name, storage ) @job = Collective::Idler.new( resolve_job( prototype_job ), min_sleep: policy.worker_idle_min_sleep, max_sleep: policy.worker_idle_max_sleep ) # type checks policy.pool_min_workers registry.workers # post-fork processing storage.reconnect_after_fork registry.reconnect_after_fork # set up observers policy.observers.each do |observer| o = Collective::Utilities::ObserverBase.resolve(observer) add_observer(o) end # manage the registry via an observer add_observer( Collective::LifecycleObserver.new( key, registry ) ) end |