Sha256: 47678e66a27474c7c391bd9dbff08f9be6ef814be03cb9a49bb74355f00b1f50

Contents?: true

Size: 828 Bytes

Versions: 5

Compression:

Stored size: 828 Bytes

Contents

require 'celluloid'

module Buildbox
  class Server
    INTERVAL = 5

    def initialize(config = Buildbox.config, logger = Buildbox.logger)
      @config = config
      @logger = logger
      @supervisors = []
    end

    def start
      Celluloid.logger = @logger

      agent_access_tokens.each do |access_token|
        @supervisors << Buildbox::Agent.supervise(access_token)

        @logger.info "Agent with access token `#{access_token}` has started."
      end

      loop do
        @supervisors.each do |supervisor|
          supervisor.actors.first.async.work
        end

        wait INTERVAL
      end
    end

    private

    def wait(interval)
      @logger.debug "Sleeping for #{interval} seconds"

      sleep interval
    end

    def agent_access_tokens
      @config.agent_access_tokens
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
buildbox-0.3.8 lib/buildbox/server.rb
buildbox-0.3.7 lib/buildbox/server.rb
buildbox-0.3.6 lib/buildbox/server.rb
buildbox-0.3.5 lib/buildbox/server.rb
buildbox-0.3.4 lib/buildbox/server.rb