From efa5e8b5bb79242a4e297227f07731ffe6c3e09c Mon Sep 17 00:00:00 2001 From: jingquan huang Date: Tue, 16 Jul 2019 10:56:54 +0800 Subject: [PATCH] =?UTF-8?q?rep=20=E5=BC=82=E5=B8=B8=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=EF=BC=8C=E7=AB=8B=E5=8D=B3=E9=87=8D=E8=AF=95=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E5=90=8E=E5=8F=B0=E6=A3=80=E6=B5=8B=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/games_controller.rb | 31 ++++++++++------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/app/controllers/games_controller.rb b/app/controllers/games_controller.rb index e5cfaf2a6..c951340f8 100644 --- a/app/controllers/games_controller.rb +++ b/app/controllers/games_controller.rb @@ -477,7 +477,7 @@ class GamesController < ApplicationController # 获取版本库文件内容 # 注:如果本身path传错,内容肯定也为空;fork成功后,可能短时间内也获取不到版本库内容 # params[:status] 1: 目录树点击的请求 0:正常自动加载 - # 返回参数status : -3 需要重试,带retry参数;-1 给出提示 + # 返回参数status : -1 系统统一报错提示;-3 需要轮训重试,带retry参数;-4 立即重试 def rep_content challenge_path = @game.challenge.try(:path) if challenge_path.blank? @@ -491,24 +491,9 @@ class GamesController < ApplicationController begin @content = git_fle_content(@myshixun.repo_path, path) || "" rescue Exception => e - if e.status == -1 - tip_exception(-3, "#{e.message}") - end + # 思路: 异常首先应该考虑去恢复 if params[:retry].to_i == 1 begin - begin - # 检测TPM对应的路径代码是否正常 - git_fle_content(@myshixun.shixun.repo_path, path) - rescue Exception => e - uid_logger_error("#{e.message}") - # 如果已发布的TPM实训也不能获取到内容,那么肯定是版本库异常了 - if @myshixun.shixun.try(:status) < 2 - tip_exception("代码获取异常,请检查实训模板的评测设置是否正确") - else - tip_exception("代码获取异常,请联系系统管理员") - end - end - # 如果模板没有问题,则通过中间层检测实训仓库是否异常 # 监测版本库HEAD是否存在,不存在则取最新的HEAD gitUrl = repo_url @myshixun.repo_path @@ -531,11 +516,17 @@ class GamesController < ApplicationController end rescue Exception => e uid_logger_error(e.message) - # 报错继续retry - tip_exception(-3, "#{e.message}") + + if @myshixun.shixun.try(:status) < 2 + tip_exception("代码获取异常,请检查实训模板的评测设置是否正确") + else + # 报错继续retry + tip_exception(-3, "#{e.message}") + end end end - tip_exception(-3, "#{e.message}") + # 有异常了,立即重试 + tip_exception(-4, e.message) end end