summaryrefslogtreecommitdiff
path: root/task.rb
diff options
context:
space:
mode:
authorgebele <gebele@in-silico.ch>2018-05-22 09:22:40 +0000
committergebele <gebele@in-silico.ch>2018-05-22 09:22:40 +0000
commit198165e4a0e46c522e28b69f10c9c8e5327f6bbb (patch)
tree9709022fdb13f28c9e6072e6ba0156141ae25ab4 /task.rb
parentb101916876ce06d06633af2a3ac6a34bd6cb2762 (diff)
add additional files
Diffstat (limited to 'task.rb')
-rw-r--r--task.rb53
1 files changed, 53 insertions, 0 deletions
diff --git a/task.rb b/task.rb
new file mode 100644
index 0000000..9b9ca26
--- /dev/null
+++ b/task.rb
@@ -0,0 +1,53 @@
+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
+
+ attr_accessor :pid, :percent, :predictions, :csv
+
+ def pid
+ self[:pid]
+ end
+
+ def percent
+ self[:percent]
+ end
+
+ def predictions
+ self[:predictions]
+ end
+
+ def csv
+ self[:csv]
+ 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
+