resque_stuck_queue 0.3.7 → 0.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/lib/resque_stuck_queue/heartbeat_job.rb +2 -1
- data/lib/resque_stuck_queue/version.rb +1 -1
- data/lib/resque_stuck_queue.rb +8 -0
- data/test/test_helper.rb +11 -1
- data/test/test_integration.rb +5 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
SHA1:
|
3
|
-
data.tar.gz: 24838251cf63913fd05a55753101def684df1a4f
|
4
|
-
metadata.gz: 3d158d30adce28f9d8cde9ea0e26e7af7309c03a
|
5
2
|
SHA512:
|
6
|
-
|
7
|
-
|
3
|
+
metadata.gz: 73fe098253c3537faa8c3f52ba8725f5bb3b61de0e3ab592cf2f6de6eedbcf2e5bc92f3c356fac8e32fe6f383104621432ac62983af8c29c72b2ba1f2d4faebb
|
4
|
+
data.tar.gz: 3a2e165f4e3edc91cc6086c3180250ea5970e42695e3aede09049918ba771206e905ceac6956b94a72bf925709703b5f5bc2964edd9a3bb4c266c64e65e60e14
|
5
|
+
SHA1:
|
6
|
+
metadata.gz: 9248a893ba7d98a4e4b057f19cc2592babc83993
|
7
|
+
data.tar.gz: 9b3208761e51d8065c9e07e9f300085693ea3b67
|
@@ -8,8 +8,9 @@ module Resque
|
|
8
8
|
def perform(*args)
|
9
9
|
keyname,host,port,namespace,new_time = *args
|
10
10
|
@redis = Redis::Namespace.new(namespace, :redis => Redis.new(:host => host, :port => port))
|
11
|
+
#raise "#{@redis.inspect} must be the same as #{Resque::StuckQueue.redis.inspect}"
|
11
12
|
@redis.set(keyname, new_time)
|
12
|
-
Resque::StuckQueue.logger.info "successfully updated key #{keyname} to #{new_time} at #{Time.now}"
|
13
|
+
Resque::StuckQueue.logger.info "successfully updated key #{keyname} to #{new_time} at #{Time.now} for #{@redis.inspect}"
|
13
14
|
end
|
14
15
|
|
15
16
|
end
|
data/lib/resque_stuck_queue.rb
CHANGED
@@ -77,6 +77,8 @@ module Resque
|
|
77
77
|
|
78
78
|
Redis::Classy.db = redis if Redis::Classy.db.nil?
|
79
79
|
|
80
|
+
pretty_process_name
|
81
|
+
|
80
82
|
setup_heartbeat_thread
|
81
83
|
setup_watcher_thread
|
82
84
|
|
@@ -180,6 +182,7 @@ module Resque
|
|
180
182
|
if time_set
|
181
183
|
time_set
|
182
184
|
else
|
185
|
+
logger.info("manually refreshing #{queue_name} for :first_time")
|
183
186
|
manual_refresh(queue_name, :first_time)
|
184
187
|
end.to_i
|
185
188
|
end
|
@@ -266,6 +269,11 @@ module Resque
|
|
266
269
|
def max_wait_time
|
267
270
|
config[:trigger_timeout] || TRIGGER_TIMEOUT
|
268
271
|
end
|
272
|
+
|
273
|
+
def pretty_process_name
|
274
|
+
$0 = "rake --trace resque:stuck_queue #{redis.inspect} QUEUES=#{queues.join(",")}"
|
275
|
+
end
|
276
|
+
|
269
277
|
end
|
270
278
|
end
|
271
279
|
end
|
data/test/test_helper.rb
CHANGED
@@ -26,7 +26,7 @@ module TestHelper
|
|
26
26
|
|
27
27
|
def hax_kill_resque
|
28
28
|
# ugly, FIXME how to get pid of forked forked process. run_resque pid is incorrect.
|
29
|
-
`ps aux |grep resque |awk '{print $2}' |xargs kill`
|
29
|
+
`ps aux |grep resque | grep -v stuck_queue |awk '{print $2}' |xargs kill`
|
30
30
|
sleep 2 # wait for shutdown
|
31
31
|
end
|
32
32
|
|
@@ -38,3 +38,13 @@ module TestHelper
|
|
38
38
|
end
|
39
39
|
|
40
40
|
end
|
41
|
+
|
42
|
+
# http://stackoverflow.com/questions/9346101/how-to-get-stack-trace-from-a-testunittestcase
|
43
|
+
def MiniTest.filter_backtrace(bt)
|
44
|
+
bt
|
45
|
+
end
|
46
|
+
|
47
|
+
# hax ensure previous test runs that raised didn't leave a resque process runing beforehand
|
48
|
+
unless @before_all_hax_kill_resque
|
49
|
+
TestHelper.hax_kill_resque && @before_all_hax_kill_resque=true
|
50
|
+
end
|
data/test/test_integration.rb
CHANGED
@@ -58,6 +58,8 @@ class TestIntegration < Minitest::Test
|
|
58
58
|
with_no_resque_failures do
|
59
59
|
Resque::StuckQueue.config[:trigger_timeout] = 10
|
60
60
|
Resque::StuckQueue.config[:heartbeat] = 1
|
61
|
+
Resque::StuckQueue.config[:redis] = Redis.new
|
62
|
+
|
61
63
|
@triggered = false
|
62
64
|
Resque::StuckQueue.config[:triggered_handler] = proc { @triggered = true }
|
63
65
|
start_and_stop_loops_after(5)
|
@@ -72,6 +74,8 @@ class TestIntegration < Minitest::Test
|
|
72
74
|
with_no_resque_failures do
|
73
75
|
Resque::StuckQueue.config[:trigger_timeout] = 0
|
74
76
|
Resque::StuckQueue.config[:heartbeat] = 1
|
77
|
+
Resque::StuckQueue.config[:redis] = Redis.new
|
78
|
+
|
75
79
|
@triggered = false
|
76
80
|
Resque::StuckQueue.config[:triggered_handler] = proc { @triggered = true }
|
77
81
|
start_and_stop_loops_after(2)
|
@@ -86,7 +90,7 @@ class TestIntegration < Minitest::Test
|
|
86
90
|
with_no_resque_failures do
|
87
91
|
Resque::StuckQueue.config[:trigger_timeout] = 2 # won't allow waiting too much and will complain (eg trigger) sooner than later
|
88
92
|
Resque::StuckQueue.config[:heartbeat] = 1
|
89
|
-
Resque::StuckQueue.config[:redis] = Redis
|
93
|
+
Resque::StuckQueue.config[:redis] = Redis.new
|
90
94
|
|
91
95
|
begin
|
92
96
|
Resque::StuckQueue.config[:heartbeat_job] = proc { Resque.enqueue_to(:app, Resque::StuckQueue::HeartbeatJob, Resque::StuckQueue.heartbeat_key_for(:app)) }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resque_stuck_queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shai Rosenfeld
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2014-01
|
12
|
+
date: 2014-02-01 00:00:00 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: redis-mutex
|