don't cause an infinite job loop with automatic_peer_reviews

test plan:
* create an assignment with a due date set in the past and
 automatic peer reviews set to be assigned in the future
 (and a number of peer reviews per user greater than 0)
* save the assignment
* check the list of running delayed jobs ("/jobs")
* should resolve the job and not keep queueing itself 5evr

refs #CNVS-18148

Change-Id: I2ee38ca4725fa7629667348592d7e04329655d8e
Reviewed-on: https://gerrit.instructure.com/47719
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
QA-Review: Clare Strong <clare@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
This commit is contained in:
James Williams 2015-01-23 08:15:21 -07:00
parent fda30aa841
commit 67ca345bbc
1 changed files with 3 additions and 2 deletions

View File

@ -256,9 +256,10 @@ class Assignment < ActiveRecord::Base
end
def schedule_do_auto_peer_review_job_if_automatic_peer_review
if peer_reviews && automatic_peer_reviews && !peer_reviews_assigned && due_at
reviews_due_at = self.peer_reviews_assign_at || self.due_at
if peer_reviews && automatic_peer_reviews && !peer_reviews_assigned && reviews_due_at
self.send_later_enqueue_args(:do_auto_peer_review, {
:run_at => due_at,
:run_at => reviews_due_at,
:singleton => Shard.birth.activate { "assignment:auto_peer_review:#{self.id}" }
})
end