23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/xcflushd/runner.rb', line 23
def run(opts = {})
setup_sighandlers
@max_term_wait = opts[:max_term_wait] || DEFAULT_MAX_TERM_WAIT
@logger = Logger.new(STDOUT)
redis_host = opts[:redis].host
redis_port = opts[:redis].port
redis_driver = RUBY_ENGINE == 'jruby' ? :ruby : :hiredis
redis = Redis.new(host: redis_host, port: redis_port, driver: redis_driver)
storage = Storage.new(redis, @logger, StorageKeys)
threescale = ThreeScale::Client.new(provider_key: opts[:provider_key],
host: opts[:backend].host,
port: opts[:backend].port ||
(opts[:secure] ? 443 : 80),
secure: opts[:secure],
persistent: true)
reporter = Reporter.new(threescale)
authorizer = Authorizer.new(threescale)
redis_pub = Redis.new(host: redis_host, port: redis_port, driver: redis_driver)
redis_sub = Redis.new(host: redis_host, port: redis_port, driver: redis_driver)
auth_ttl = opts[:auth_ttl]
error_handler = FlusherErrorHandler.new(@logger, storage)
@flusher = Flusher.new(reporter, authorizer, storage,
auth_ttl, error_handler, @logger,
flusher_threads(opts[:threads]))
@prio_auth_renewer = PriorityAuthRenewer.new(authorizer, storage,
redis_pub, redis_sub,
auth_ttl, @logger,
prio_threads(opts[:prio_threads]))
@prio_auth_renewer_thread = start_priority_auth_renewer
flush_periodically(opts[:frequency])
end
|