Module: SidekiqAlive
- Defined in:
- lib/sidekiq_alive.rb,
lib/sidekiq_alive/config.rb,
lib/sidekiq_alive/server.rb,
lib/sidekiq_alive/worker.rb,
lib/sidekiq_alive/version.rb
Defined Under Namespace
Classes: Config, Server, Worker
Constant Summary
collapse
- VERSION =
"1.1.0"
Class Method Summary
collapse
Class Method Details
.alive? ⇒ Boolean
67
68
69
|
# File 'lib/sidekiq_alive.rb', line 67
def self.alive?
redis.ttl(current_lifeness_key) == -2 ? false : true
end
|
.banner ⇒ Object
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/sidekiq_alive.rb', line 93
def self.banner
<<-BANNER.strip_heredoc
=================== SidekiqAlive =================
Hostname: #{hostname}
Liveness key: #{current_lifeness_key}
Port: #{config.port}
Time to live: #{config.time_to_live}s
Current instance register key: #{current_instance_register_key}
Worker running on queue: #{@queue}
starting ...
BANNER
end
|
.config ⇒ Object
81
82
83
|
# File 'lib/sidekiq_alive.rb', line 81
def self.config
@config ||= SidekiqAlive::Config.instance
end
|
.current_instance_register_key ⇒ Object
53
54
55
|
# File 'lib/sidekiq_alive.rb', line 53
def self.current_instance_register_key
"#{config.registered_instance_key}::#{hostname}"
end
|
.current_lifeness_key ⇒ Object
85
86
87
|
# File 'lib/sidekiq_alive.rb', line 85
def self.current_lifeness_key
"#{config.liveness_key}::#{hostname}"
end
|
.hostname ⇒ Object
89
90
91
|
# File 'lib/sidekiq_alive.rb', line 89
def self.hostname
ENV['HOSTNAME'] || 'HOSTNAME_NOT_SET'
end
|
.logger ⇒ Object
77
78
79
|
# File 'lib/sidekiq_alive.rb', line 77
def self.logger
Sidekiq::Logging.logger
end
|
.redis ⇒ Object
63
64
65
|
# File 'lib/sidekiq_alive.rb', line 63
def self.redis
Sidekiq.redis { |r| r }
end
|
.register_current_instance ⇒ Object
41
42
43
|
# File 'lib/sidekiq_alive.rb', line 41
def self.register_current_instance
register_instance(current_instance_register_key)
end
|
.register_instance(instance_name) ⇒ Object
120
121
122
123
124
|
# File 'lib/sidekiq_alive.rb', line 120
def self.register_instance(instance_name)
redis.set(instance_name,
Time.now.to_i,
{ ex: config.time_to_live.to_i + 60 })
end
|
.registered_instances ⇒ Object
49
50
51
|
# File 'lib/sidekiq_alive.rb', line 49
def self.registered_instances
redis.keys("#{config.registered_instance_key}::*")
end
|
.select_queue(queues) ⇒ Object
33
34
35
36
37
38
39
|
# File 'lib/sidekiq_alive.rb', line 33
def self.select_queue(queues)
@queue = if queues.find { |e| e.to_sym == config.preferred_queue.to_sym }
config.preferred_queue.to_sym
else
queues.first
end
end
|
.setup {|config| ... } ⇒ Object
73
74
75
|
# File 'lib/sidekiq_alive.rb', line 73
def self.setup
yield(config)
end
|
.store_alive_key ⇒ Object
57
58
59
60
61
|
# File 'lib/sidekiq_alive.rb', line 57
def self.store_alive_key
redis.set(current_lifeness_key,
Time.now.to_i,
{ ex: config.time_to_live.to_i })
end
|
.successful_startup_text ⇒ Object
110
111
112
113
114
115
116
117
118
|
# File 'lib/sidekiq_alive.rb', line 110
def self.successful_startup_text
<<-BANNER.strip_heredoc
Registered instances:
- #{registered_instances.join("\n\s\s- ")}
=================== SidekiqAlive Ready! =================
BANNER
end
|
.unregister_current_instance ⇒ Object
45
46
47
|
# File 'lib/sidekiq_alive.rb', line 45
def self.unregister_current_instance
redis.del(current_instance_register_key)
end
|