FIX: simplify, use our redis instead
This commit is contained in:
parent
997ab7a770
commit
35ea1274e2
|
@ -6,9 +6,9 @@ class SidekiqPauser
|
||||||
end
|
end
|
||||||
|
|
||||||
def pause!
|
def pause!
|
||||||
|
redis.setex paused_key, 60, "paused"
|
||||||
@mutex.synchronize do
|
@mutex.synchronize do
|
||||||
@paused = true
|
@extend_lease_thread ||= extend_lease_thread
|
||||||
@pause_thread ||= start_pause_thread
|
|
||||||
sleep 0.001 while !paused?
|
sleep 0.001 while !paused?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -16,37 +16,37 @@ class SidekiqPauser
|
||||||
end
|
end
|
||||||
|
|
||||||
def paused?
|
def paused?
|
||||||
Sidekiq.redis { |r| !!r.get(paused_key) }
|
!!redis.get(paused_key)
|
||||||
end
|
end
|
||||||
|
|
||||||
def unpause!
|
def unpause!
|
||||||
@mutex.synchronize do
|
@mutex.synchronize do
|
||||||
if @pause_thread
|
if @extend_lease_thread
|
||||||
@paused = false
|
@extend_lease_thread.kill
|
||||||
|
@extend_lease_thread.join
|
||||||
|
@extend_lease_thread = nil
|
||||||
end
|
end
|
||||||
@pause_thread.kill
|
|
||||||
@pause_thread.join
|
|
||||||
@pause_thread = nil
|
|
||||||
end
|
end
|
||||||
|
|
||||||
Sidekiq.redis { |r| r.del(paused_key) }
|
redis.del(paused_key)
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def start_pause_thread
|
def extend_lease_thread
|
||||||
Thread.new do
|
Thread.new do
|
||||||
while @paused do
|
while true do
|
||||||
# TODO retries in case bad redis connectivity
|
redis.expire paused_key, 60
|
||||||
Sidekiq.redis do |r|
|
|
||||||
r.setex paused_key, 60, "paused"
|
|
||||||
end
|
|
||||||
sleep 30
|
sleep 30
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def redis
|
||||||
|
$redis.without_namespace
|
||||||
|
end
|
||||||
|
|
||||||
def paused_key
|
def paused_key
|
||||||
"sidekiq_is_paused_v2"
|
"sidekiq_is_paused_v2"
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue