Skip to content

Instantly share code, notes, and snippets.

@vanpelt
Created June 17, 2009 02:16
Show Gist options
  • Save vanpelt/131037 to your computer and use it in GitHub Desktop.
Save vanpelt/131037 to your computer and use it in GitHub Desktop.
#If override is set
def self.reject(jid, wid, max = nil)
q = Unit.all('judgments.job_id' => jid, 'judgments.worker_id' => wid, 'judgments.tainted' => false).to_a
job = Job.get(jid)
Judgment.all(:job_id => jid, :worker_id => wid).update!(:tainted => true)
q.each do |u|
AggregateJudgment.reset_unit(u.id)
u.rejudge!(job.judgments_per_unit)
end
worker = Worker.get(wid)
if job.options["no_reject"] && worker.external_type == "amt"
Merb::Mailer.new({
:to => "[email protected]",
:from => "CrowdFlower <#{Socket.gethostname}@doloreslabs.com>",
:subject => "Job #{job.id} delayed rejection",
:text => "AmtInterface.reject_all_worker_hits_for_task(Worker.get(#{worker.id}), Job.get(#{job.id}), #{max}) - #{q.length} units - http://crowdflower.com/jobs/#{job.id}/workers/#{worker.id}" }).deliver!
else
AmtInterface.reject_all_worker_hits_for_task(worker, job, max) if worker.external_type == "amt"
end
end
def self.trust(jid, wid)
q = Unit.all('judgments.job_id' => jid, 'judgments.worker_id' => wid, 'judgments.tainted' => true).to_a
return unless q.length > 0
job = Job.get(jid)
Judgment.all(:job_id => jid, :worker_id => wid).update!(:tainted => false)
q.each do |u|
AggregateJudgment.reset_unit(u.id)
u.dejudge!(job.judgments_per_unit)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment