Class: SidekiqAlive::Server::Default
Constant Summary
Constants included
from Base
Base::QUIET_SIGNAL, Base::SHUTDOWN_SIGNAL
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(port, host, path, logger = SidekiqAlive.logger) ⇒ Default
Returns a new instance of Default.
30
31
32
33
34
|
# File 'lib/sidekiq_alive/server/default.rb', line 30
def initialize(port, host, path, logger = SidekiqAlive.logger)
super(self, port, host, logger)
@path = path
end
|
Class Method Details
.run! ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/sidekiq_alive/server/default.rb', line 12
def run!
logger.info("[SidekiqAlive] Starting default healthcheck server on #{host}:#{port}")
@server_pid = ::Process.fork do
@server = new(port, host, path)
configure_shutdown_signal { Thread.new { @server.stop } }
configure_quiet_signal { @server.quiet! }
@server.start
@server.join
end
configure_shutdown
logger.info("[SidekiqAlive] Web server started in subprocess with pid #{@server_pid}")
self
end
|
Instance Method Details
#quiet! ⇒ Object
66
67
68
|
# File 'lib/sidekiq_alive/server/default.rb', line 66
def quiet!
@quiet = Time.now
end
|
#request_handler(req, res) ⇒ Object
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
64
|
# File 'lib/sidekiq_alive/server/default.rb', line 36
def request_handler(req, res)
if req.path != path
res.status = 404
res.body = "Not found"
return logger.warn("[SidekiqAlive] Path '#{req.path}' not found")
end
if quiet?
res.status = 200
res.body = "Server is shutting down"
return logger.debug("[SidekiqAlive] Server in quiet mode, skipping alive key lookup!")
end
if SidekiqAlive.alive?
res.status = 200
res.body = "Alive!"
return logger.debug("[SidekiqAlive] Found alive key!")
end
response = "Can't find the alive key"
res.status = 404
res.body = response
logger.error("[SidekiqAlive] #{response}")
rescue StandardError => e
response = "Internal Server Error"
res.status = 500
res.body = response
logger.error("[SidekiqAlive] #{response} looking for alive key. Error: #{e.message}")
end
|