File tree Expand file tree Collapse file tree 2 files changed +20
-4
lines changed Expand file tree Collapse file tree 2 files changed +20
-4
lines changed Original file line number Diff line number Diff line change @@ -124,8 +124,8 @@ def failure
124124 return failures_stats if @failures . is_a? Array and !@failures . empty?
125125
126126 CiJobFetchTopotestFailures
127- . delay ( run_at : 60 . seconds . from_now , queue : 'fetch_topotest_failures' )
128- . update ( @job . id )
127+ . delay ( run_at : 5 . minutes . from_now , queue : 'fetch_topotest_failures' )
128+ . update ( @job . id , 1 )
129129 end
130130
131131 def slack_notify_success
Original file line number Diff line number Diff line change 99# frozen_string_literal: true
1010
1111class CiJobFetchTopotestFailures
12- def self . update ( ci_job_id )
12+ def self . update ( ci_job_id , count )
1313 @job = CiJob . find ( ci_job_id )
1414
1515 @retrieve_error = Github ::TopotestFailures ::RetrieveError . new ( @job )
1616 @retrieve_error . retrieve
1717
18- return if @retrieve_error . failures . empty?
18+ return if rescheduling ( count )
1919
2020 @failures = @retrieve_error . failures
2121
@@ -27,4 +27,20 @@ def self.update(ci_job_id)
2727 execution_time : failure [ 'execution_time' ] )
2828 end
2929 end
30+
31+ def self . rescheduling ( count )
32+ return true if count > 3
33+
34+ if @retrieve_error . failures . empty?
35+ count += 1
36+
37+ CiJobFetchTopotestFailures
38+ . delay ( run_at : ( 5 * count ) . minutes . from_now , queue : 'fetch_topotest_failures' )
39+ . update ( @job . id , count )
40+
41+ return true
42+ end
43+
44+ false
45+ end
3046end
You can’t perform that action at this time.
0 commit comments