Show More
Commit Description:
refactor to partials...
Commit Description:
refactor to partials
git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@62 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 | ||
|
r29 | def self.find_by_ip_and_pid(ip,pid) | ||
return GraderProcess.find(:first, | ||||
:conditions => { | ||||
:ip => ip, | ||||
:pid => pid | ||||
}) | ||||
end | ||||
|
r32 | def self.register(ip,pid,mode) | ||
grader = GraderProcess.find_by_ip_and_pid(ip,pid) | ||||
if grader | ||||
grader.mode = mode | ||||
grader.active = nil | ||||
grader.task_id = nil | ||||
grader.save | ||||
else | ||||
grader = GraderProcess.create(:ip => ip, | ||||
: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 | ||