@@ -60,6 +60,7 @@ def update_status
6060 case @status
6161 when 'in_progress'
6262 @job . in_progress ( @github_check )
63+ create_timeout_worker
6364 when 'success'
6465 @job . success ( @github_check )
6566 @job . update_execution_time
@@ -81,6 +82,16 @@ def update_status
8182 [ 500 , 'Internal Server Error' ]
8283 end
8384
85+ def create_timeout_worker
86+ Delayed ::Job . where ( 'handler LIKE ?' , "%TimeoutExecution%args%-%#{ @check_suite . id } %" ) &.delete_all
87+
88+ logger ( Logger ::INFO , "CiJobStatus::Update: TimeoutExecution for '#{ @check_suite . id } '" )
89+
90+ TimeoutExecution
91+ . delay ( run_at : 2 . hours . from_now . utc , queue : 'timeout_execution' )
92+ . timeout ( @check_suite . id )
93+ end
94+
8495 def insert_new_delayed_job
8596 queue = @job . check_suite . pull_request . github_pr_id % 10
8697
@@ -91,7 +102,7 @@ def delete_and_create_delayed_job(queue)
91102 fetch_delayed_job &.destroy_all
92103
93104 CiJobStatus
94- . delay ( run_at : DELAYED_JOB_TIMER . seconds . from_now , queue : queue )
105+ . delay ( run_at : DELAYED_JOB_TIMER . seconds . from_now . utc , queue : queue )
95106 . update ( @job . check_suite . id , @job . id )
96107 end
97108
@@ -117,7 +128,7 @@ def failure
117128 return failures_stats if @failures . is_a? Array and !@failures . empty?
118129
119130 CiJobFetchTopotestFailures
120- . delay ( run_at : 5 . minutes . from_now , queue : 'fetch_topotest_failures' )
131+ . delay ( run_at : 5 . minutes . from_now . utc , queue : 'fetch_topotest_failures' )
121132 . update ( @job . id , 1 )
122133 end
123134
0 commit comments