Show More
Commit Description:
added problem_name to TestRequest and moved name_of to protected...
Commit Description:
added problem_name to TestRequest and moved name_of to protected
git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@88 6386c4cd-e34a-4fa8-8920-d93eb39b512e
References:
File last commit:
Show/Diff file:
Action:
app/models/grader_process.rb
| 52 lines
| 1.2 KiB
| text/x-ruby
| RubyLexer
|
|
r29 | class GraderProcess < ActiveRecord::Base | ||
|
r32 | belongs_to :task | ||
|
r34 | def self.find_by_host_and_pid(host,pid) | ||
|
r29 | return GraderProcess.find(:first, | ||
:conditions => { | ||||
|
r34 | :host => host, | ||
|
r29 | :pid => pid | ||
}) | ||||
end | ||||
|
r34 | |||
def self.register(host,pid,mode) | ||||
grader = GraderProcess.find_by_host_and_pid(host,pid) | ||||
|
r32 | if grader | ||
grader.mode = mode | ||||
grader.active = nil | ||||
grader.task_id = nil | ||||
grader.save | ||||
else | ||||
|
r34 | grader = GraderProcess.create(:host => host, | ||
|
r32 | :pid => pid, | ||
:mode => mode) | ||||
end | ||||
grader | ||||
end | ||||
def self.find_stalled_process() | ||||
GraderProcess.find(:all, | ||||
:conditions => ["active AND updated_at < ?", | ||||
Time.now.gmtime - GraderProcess.stalled_time]) | ||||
end | ||||
def report_active(task=nil) | ||||
self.active = true | ||||
self.task = task | ||||
self.save | ||||
|
r29 | end | ||
|
r32 | def report_inactive() | ||
self.active = false | ||||
self.task = nil | ||||
self.save | ||||
|
r29 | end | ||
|
r32 | protected | ||
def self.stalled_time() | ||||
return 1.minute | ||||
end | ||||
|
r29 | end | ||