turnitin: increase check status attempts

closes CNVS-16212

Change-Id: I33a12b1e13b47fa981f12fd80fb516da8d69c918
Reviewed-on: https://gerrit.instructure.com/45554
Reviewed-by: Josh Simpson <jsimpson@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Josh Simpson <jsimpson@instructure.com>
Product-Review: Josh Simpson <jsimpson@instructure.com>
This commit is contained in:
Cameron Matheson 2014-12-10 11:24:34 -07:00
parent df0a596cfb
commit d9262af160
2 changed files with 5 additions and 4 deletions

View File

@ -271,6 +271,7 @@ class Submission < ActiveRecord::Base
strip_tags((self.body || "").gsub(/\<\s*br\s*\/\>/, "\n<br/>").gsub(/\<\/p\>/, "</p>\n"))
end
TURNITIN_STATUS_RETRY = 11
def check_turnitin_status(attempt=1)
self.turnitin_data ||= {}
turnitin = nil
@ -283,7 +284,7 @@ class Submission < ActiveRecord::Base
data = self.turnitin_data[asset_string]
next unless data && data.is_a?(Hash) && data[:object_id]
if data[:similarity_score].blank?
if attempt < TURNITIN_RETRY
if attempt < TURNITIN_STATUS_RETRY
turnitin ||= Turnitin::Client.new(*self.context.turnitin_settings)
res = turnitin.generateReport(self, asset_string)
if res[:similarity_score]
@ -310,7 +311,7 @@ class Submission < ActiveRecord::Base
self.turnitin_data[asset_string] = data
end
send_at((5 * attempt).minutes.from_now, :check_turnitin_status, attempt + 1) if needs_retry
send_at((2 ** attempt).minutes.from_now, :check_turnitin_status, attempt + 1) if needs_retry
self.turnitin_data_changed!
self.save
end

View File

@ -480,11 +480,11 @@ describe Submission do
@turnitin_api.expects(:generateReport).with(@submission, @submission.asset_string).returns({})
expects_job_with_tag('Submission#check_turnitin_status') do
@submission.check_turnitin_status(Submission::TURNITIN_RETRY-1)
@submission.check_turnitin_status(Submission::TURNITIN_STATUS_RETRY-1)
expect(@submission.reload.turnitin_data[@submission.asset_string][:status]).to eq 'pending'
end
@submission.check_turnitin_status(Submission::TURNITIN_RETRY)
@submission.check_turnitin_status(Submission::TURNITIN_STATUS_RETRY)
@submission.reload
updated_data = @submission.turnitin_data[@submission.asset_string]
expect(updated_data[:status]).to eq 'error'