Merge branch 'dev_aliyun' of http://bdgit.educoder.net/Hjqreturn/educoder into dev_aliyun

dev_forum
cxt 5 years ago
commit 3f8b753221

@ -477,7 +477,7 @@ class GamesController < ApplicationController
# 获取版本库文件内容 # 获取版本库文件内容
# 注如果本身path传错内容肯定也为空fork成功后可能短时间内也获取不到版本库内容 # 注如果本身path传错内容肯定也为空fork成功后可能短时间内也获取不到版本库内容
# params[:status] 1: 目录树点击的请求 0正常自动加载 # params[:status] 1: 目录树点击的请求 0正常自动加载
# 返回参数status -3 需要重试带retry参数-1 给出提示 # 返回参数status -1 系统统一报错提示;-3 需要轮训重试带retry参数-4 立即重试
def rep_content def rep_content
challenge_path = @game.challenge.try(:path) challenge_path = @game.challenge.try(:path)
if challenge_path.blank? if challenge_path.blank?
@ -491,24 +491,9 @@ class GamesController < ApplicationController
begin begin
@content = git_fle_content(@myshixun.repo_path, path) || "" @content = git_fle_content(@myshixun.repo_path, path) || ""
rescue Exception => e rescue Exception => e
if e.status == -1 # 思路: 异常首先应该考虑去恢复
tip_exception(-3, "#{e.message}")
end
if params[:retry].to_i == 1 if params[:retry].to_i == 1
begin 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 # 监测版本库HEAD是否存在不存在则取最新的HEAD
gitUrl = repo_url @myshixun.repo_path gitUrl = repo_url @myshixun.repo_path
@ -531,11 +516,17 @@ class GamesController < ApplicationController
end end
rescue Exception => e rescue Exception => e
uid_logger_error(e.message) 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
end end
tip_exception(-3, "#{e.message}") # 有异常了,立即重试
tip_exception(-4, e.message)
end end
end end

Loading…
Cancel
Save