diff options
Diffstat (limited to 'task.rb')
-rw-r--r-- | task.rb | 68 |
1 files changed, 68 insertions, 0 deletions
@@ -0,0 +1,68 @@ +DEFAULT_TASK_MAX_DURATION = 36000 + +module OpenTox + + class Task + + include OpenTox + include Mongoid::Document + include Mongoid::Timestamps + store_in collection: "tasks" + field :pid, type: Integer + field :percent, type: Float, default: 0 + field :predictions, type: Hash, default:{} + field :csv, type: String + field :dataset_id, type: BSON::ObjectId + field :model_id, type: BSON::ObjectId + field :subTasks, type: Array, default:[] + + attr_accessor :pid, :percent, :predictions, :csv, :dataset_id, :model_id, :subTasks + + def pid + self[:pid] + end + + def percent + self[:percent] + end + + def predictions + self[:predictions] + end + + def csv + self[:csv] + end + + def dataset_id + self[:dataset_id] + end + + def model_id + self[:model_id] + end + + def subTasks + self[:subTasks] + end + + def update_percent(percent) + self[:percent] = percent + save + end + + def self.run + task = Task.new #uri + pid = fork do + yield + end + Process.detach(pid) + task[:pid] = pid + task.save + task + end + + end + +end + |