summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgebele <gebele@in-silico.ch>2019-07-12 10:50:51 +0000
committergebele <gebele@in-silico.ch>2019-07-12 10:50:51 +0000
commit592fa64120e2712c46dd020fbda0c128c69467b7 (patch)
treeff0d3a2d7e55361e6ecc85010887e81e87b89826
parent5490f6214f3a22216f7980c7d46f6d9fe10a4924 (diff)
kill task pid if page is reloaded
-rw-r--r--application.rb8
-rw-r--r--views/batch.haml9
2 files changed, 17 insertions, 0 deletions
diff --git a/application.rb b/application.rb
index 76137b9..0d5da57 100644
--- a/application.rb
+++ b/application.rb
@@ -221,6 +221,14 @@ get '/prediction/task/?' do
task = Task.find(params[:turi].to_s)
response['Content-Type'] = "application/json"
return JSON.pretty_generate(:percent => task.percent)
+ elsif params[:ktpid]
+ begin
+ Process.kill(9,params[:ktpid].to_i) if !params[:ktpid].blank?
+ rescue
+ nil
+ end
+ response['Content-Type'] = "application/json"
+ return JSON.pretty_generate(:ktpid => params[:ktpid])
elsif params[:predictions]
task = Task.find(params[:predictions])
pageSize = params[:pageSize].to_i - 1
diff --git a/views/batch.haml b/views/batch.haml
index 3f54772..45997bf 100644
--- a/views/batch.haml
+++ b/views/batch.haml
@@ -1,3 +1,12 @@
+:javascript
+ // kill task pid if page is reloaded, `false` makes the request synchronous
+ window.addEventListener('unload', ktpid, false);
+ function ktpid() {
+ var client = new XMLHttpRequest();
+ client.open("GET", "#{to("/prediction/task?ktpid=#{@pid}")}", false);
+ client.setRequestHeader("Content-Type", "application/json");
+ client.send(null);
+ };
%div.card
%a.btn.btn-outline-info{:href => to("/predict?tpid=#{@pid}")}
%span.fa.fa-caret-left{:aria=>{:hidden=>"true"}}