Class: HttpLoader::Client

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Includes:
ErrorHandler
Defined in:
lib/http_loader/client.rb,
lib/http_loader/client/config.rb,
lib/http_loader/client/logger.rb,
lib/http_loader/client/slowloris.rb,
lib/http_loader/client/http_session.rb,
lib/http_loader/client/error_handler.rb,
lib/http_loader/client/target_manager.rb

Overview

Master client class coordinating connection pools through Async Engine.

Defined Under Namespace

Modules: ErrorHandler Classes: Config, HttpSession, Logger, Slowloris, TargetManager

Instance Method Summary collapse

Methods included from ErrorHandler

#handle_err

Constructor Details

#initialize(config) ⇒ Client

Returns a new instance of Client.



25
26
27
28
29
30
31
# File 'lib/http_loader/client.rb', line 25

def initialize(config)
  @config = config
  @logger = T.let(Logger.new(config.verbose), Logger)
  @target_manager = T.let(TargetManager.new(config), TargetManager)
  @slow_sess = T.let(Slowloris.new(config, @logger), Slowloris)
  @http_sess = T.let(HttpSession.new(config, @logger), HttpSession)
end

Instance Method Details

#startObject



34
35
36
37
38
39
40
41
42
# File 'lib/http_loader/client.rb', line 34

def start
  log_startup_message
  trap('INT') { exit(0) }
  @logger.setup_files!

  Async { |task| run_engine(task) }
ensure
  @logger.flush_synchronously!
end