diff options
author | gebele <gebele@in-silico.ch> | 2019-07-12 10:50:51 +0000 |
---|---|---|
committer | gebele <gebele@in-silico.ch> | 2019-07-12 10:50:51 +0000 |
commit | 592fa64120e2712c46dd020fbda0c128c69467b7 (patch) | |
tree | ff0d3a2d7e55361e6ecc85010887e81e87b89826 | |
parent | 5490f6214f3a22216f7980c7d46f6d9fe10a4924 (diff) |
kill task pid if page is reloaded
-rw-r--r-- | application.rb | 8 | ||||
-rw-r--r-- | views/batch.haml | 9 |
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"}} |