Show More
Commit Description:
[web] fix time.new, time.now to use gmtime...
Commit Description:
[web] fix time.new, time.now to use gmtime
git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@249 6386c4cd-e34a-4fa8-8920-d93eb39b512e
References:
File last commit:
Show/Diff file:
Action:
app/models/grader_process.rb
| 53 lines
| 1.3 KiB
| text/x-ruby
| RubyLexer
|
|
r29 | class GraderProcess < ActiveRecord::Base | ||
|
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 | ||||
|
r105 | grader.task_type = nil | ||
|
r32 | 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 | ||||
|
r105 | self.task_id = task.id | ||
self.task_type = task.class.to_s | ||||
|
r32 | self.save | ||
|
r29 | end | ||
|
r32 | def report_inactive() | ||
self.active = false | ||||
|
r105 | self.task_id = nil | ||
self.task_type = nil | ||||
|
r32 | self.save | ||
|
r29 | end | ||
|
r32 | protected | ||
def self.stalled_time() | ||||
return 1.minute | ||||
end | ||||
|
r29 | end | ||