class Berkshelf::API::CacheBuilder
Public Class Methods
new()
click to toggle source
# File lib/berkshelf/api/cache_builder.rb, line 14 def initialize log.info "Cache Builder starting..." @worker_registry = Celluloid::Registry.new @worker_supervisor = WorkerSupervisor.new(@worker_registry) @building = false @build_interval = Application.config.build_interval Application.config.endpoints.each_with_index do |endpoint, index| endpoint_options = (endpoint.options || {}).to_hash.deep_symbolize_keys @worker_supervisor.supervise(CacheBuilder::Worker[endpoint.type], endpoint_options.merge(priority: index)) end end
Public Instance Methods
build()
click to toggle source
# File lib/berkshelf/api/cache_builder.rb, line 27 def build cache_manager.process_workers(workers) end
build_loop(interval = @build_interval)
click to toggle source
Issue a build command to all workers at the scheduled interval
@param [Fixnum, Float] interval
# File lib/berkshelf/api/cache_builder.rb, line 34 def build_loop(interval = @build_interval) return if @building loop do @building = true build sleep interval end end
workers()
click to toggle source
Return the list of running workers
@return [Array<CacheBuilder::Worker::Base>]
# File lib/berkshelf/api/cache_builder.rb, line 47 def workers @worker_supervisor.actors end
Private Instance Methods
finalize_callback()
click to toggle source
# File lib/berkshelf/api/cache_builder.rb, line 53 def finalize_callback log.info "Cache Builder shutting down..." @worker_supervisor.terminate if @worker_supervisor && @worker_supervisor.alive? end