summaryrefslogtreecommitdiff
path: root/task.rb
diff options
context:
space:
mode:
authorgebele <gebele@in-silico.ch>2018-11-26 15:29:26 +0000
committergebele <gebele@in-silico.ch>2018-11-26 15:29:26 +0000
commit9750e0309500259e9a56e267ce87984fb5bb5e53 (patch)
tree17db0a8246578729e5309ef3bf4f71404c3f7479 /task.rb
parente3ae34a75ed7a503078c3c2cdf95f1500d6e2b73 (diff)
clean out; better response codes; prepare for batch
Diffstat (limited to 'task.rb')
-rw-r--r--task.rb63
1 files changed, 63 insertions, 0 deletions
diff --git a/task.rb b/task.rb
new file mode 100644
index 0000000..708613e
--- /dev/null
+++ b/task.rb
@@ -0,0 +1,63 @@
+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
+
+ attr_accessor :pid, :percent, :predictions, :csv, :dataset_id, :model_id
+
+ 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 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
+