File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -40,6 +40,19 @@ def size
40
40
@size ||= ReadyExecution . queued_as ( name ) . count
41
41
end
42
42
43
+ def latency
44
+ @latency = begin
45
+ now = Time . current
46
+ oldest_enqueued_at = SolidQueue ::ReadyExecution . queued_as ( name ) . minimum ( :created_at ) || now
47
+
48
+ ( now - oldest_enqueued_at ) . to_i
49
+ end
50
+ end
51
+
52
+ def human_latency
53
+ ActiveSupport ::Duration . build ( latency ) . inspect
54
+ end
55
+
43
56
def ==( queue )
44
57
name == queue . name
45
58
end
Original file line number Diff line number Diff line change 2
2
3
3
class QueueTest < ActiveSupport ::TestCase
4
4
setup do
5
+ freeze_time
6
+
5
7
5 . times do
6
8
AddToBufferJob . perform_later "hey!"
7
9
end
@@ -39,4 +41,23 @@ class QueueTest < ActiveSupport::TestCase
39
41
@default_queue . resume
40
42
end
41
43
end
44
+
45
+ test "return latency in seconds on each queue" do
46
+ travel_to 5 . minutes . from_now
47
+
48
+ assert_in_delta 5 . minutes . to_i , @background_queue . latency , 1 . second . to_i
49
+ assert_equal 0 , @default_queue . latency
50
+
51
+ travel_to 10 . minutes . from_now
52
+
53
+ assert_in_delta 15 . minutes . to_i , @background_queue . latency , 1 . second . to_i
54
+ assert_equal 0 , @default_queue . latency
55
+ end
56
+
57
+ test "return human latency on each queue" do
58
+ travel_to 5 . minutes . from_now
59
+
60
+ assert_match /5 minutes/ , @background_queue . human_latency
61
+ assert_match /0 seconds/ , @default_queue . human_latency
62
+ end
42
63
end
You can’t perform that action at this time.
0 commit comments