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
4040 @size ||= ReadyExecution . queued_as ( name ) . count
4141 end
4242
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+
4356 def ==( queue )
4457 name == queue . name
4558 end
Original file line number Diff line number Diff line change 22
33class QueueTest < ActiveSupport ::TestCase
44 setup do
5+ freeze_time
6+
57 5 . times do
68 AddToBufferJob . perform_later "hey!"
79 end
@@ -39,4 +41,23 @@ class QueueTest < ActiveSupport::TestCase
3941 @default_queue . resume
4042 end
4143 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
4263end
You can’t perform that action at this time.
0 commit comments