workflow_manager 0.7.6 → 0.7.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/environments/redis.conf +1 -1
- data/lib/job_checker.rb +13 -5
- data/lib/workflow_manager/server.rb +4 -4
- data/lib/workflow_manager/version.rb +1 -1
- data/start_workflow_manager.sh +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aff589c219150c4a2b7e8676d8540343143a12099ce4bfed847663e37f946a99
|
4
|
+
data.tar.gz: 64461e67991613603227c3894aa2b728db4952739071d140c007caefd8564601
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e79f54d8335b4df34e466055d76cb8f64fa5c53787bf83047a7e259e5d564b0514e39d2b08ba56830dc73e9235164904806a34210e76e6e1018516e1f3bd243
|
7
|
+
data.tar.gz: 9e3f4b1ce2adddc6b4b13e77e7bedbef74c9b635253ba77f9dbd0d731a5a6896a515404b481aa0c7f23b1a739f55142f5825fa7b7ffa8ecb8f7c7a3ba8754166
|
data/lib/job_checker.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'sidekiq'
|
2
2
|
require 'redis'
|
3
3
|
|
4
|
+
require 'uri'
|
5
|
+
require 'net/http'
|
6
|
+
|
4
7
|
WORKER_INTERVAL = 10 # [s]
|
5
8
|
REDIS_CONF = File.expand_path("../../config/environments/redis.conf", __FILE__)
|
6
9
|
PORT = if File.exist?(REDIS_CONF)
|
@@ -40,15 +43,15 @@ class JobChecker
|
|
40
43
|
end
|
41
44
|
new_job_script
|
42
45
|
end
|
43
|
-
def update_time_status(status, script_basename, user, project_number, next_dataset_id)
|
46
|
+
def update_time_status(status, script_basename, user, project_number, next_dataset_id, rails_host)
|
44
47
|
unless @start_time
|
45
48
|
@start_time = Time.now.strftime("%Y-%m-%d %H:%M:%S")
|
46
49
|
end
|
47
50
|
time = Time.now.strftime("%Y-%m-%d %H:%M:%S")
|
48
|
-
[status, script_basename, [@start_time, time].join("/"), user, project_number, next_dataset_id].join(',')
|
51
|
+
[status, script_basename, [@start_time, time].join("/"), user, project_number, next_dataset_id, rails_host].join(',')
|
49
52
|
end
|
50
53
|
|
51
|
-
def perform(job_id, script_basename, log_file, user, project_id, next_dataset_id=nil)
|
54
|
+
def perform(job_id, script_basename, log_file, user, project_id, next_dataset_id=nil, rails_host=nil)
|
52
55
|
puts "JobID (in JobChecker): #{job_id}"
|
53
56
|
db0 = Redis.new(port: PORT, db: 0) # state + alpha DB
|
54
57
|
db1 = Redis.new(port: PORT, db: 1) # log DB
|
@@ -63,10 +66,10 @@ class JobChecker
|
|
63
66
|
#print ret
|
64
67
|
state = ret.split(/\n/).last.strip
|
65
68
|
#puts "state: #{state}"
|
66
|
-
db0[job_id] = update_time_status(state, script_basename, user, project_id, next_dataset_id)
|
69
|
+
db0[job_id] = update_time_status(state, script_basename, user, project_id, next_dataset_id, rails_host)
|
67
70
|
|
68
71
|
unless state == pre_state
|
69
|
-
db0[job_id] = update_time_status(state, script_basename, user, project_id, next_dataset_id)
|
72
|
+
db0[job_id] = update_time_status(state, script_basename, user, project_id, next_dataset_id, rails_host)
|
70
73
|
project_jobs = eval((db2[project_id]||[]).to_s)
|
71
74
|
project_jobs = Hash[*project_jobs]
|
72
75
|
project_jobs[job_id] = state
|
@@ -76,6 +79,11 @@ class JobChecker
|
|
76
79
|
pre_state = state
|
77
80
|
sleep WORKER_INTERVAL
|
78
81
|
end while state =~ /RUNNING/ or state =~ /PENDING/ or state =~ /---/
|
82
|
+
if next_dataset_id and rails_host
|
83
|
+
uri = URI("#{rails_host}/data_set/#{next_dataset_id}/update_completed_samples")
|
84
|
+
#p uri
|
85
|
+
res = Net::HTTP.get_response(uri)
|
86
|
+
end
|
79
87
|
end
|
80
88
|
end
|
81
89
|
|
@@ -187,12 +187,12 @@ module WorkflowManager
|
|
187
187
|
statuses.each do |job_id, status|
|
188
188
|
# puts [job_id, status].join(",")
|
189
189
|
# 120249,RUNNING,QC_ventricles_100k.sh,2021-07-30 09:47:04/2021-07-30 09:47:04,masaomi,1535
|
190
|
-
stat, script_basename, time, user, project_number, next_dataset_id = status.split(",")
|
190
|
+
stat, script_basename, time, user, project_number, next_dataset_id, rails_host = status.split(",")
|
191
191
|
if stat == "RUNNING" or stat == "PENDING"
|
192
192
|
log_file = logs[job_id]
|
193
193
|
log_puts("JobID (in recovery check): #{job_id}")
|
194
194
|
puts "JobID (in recovery check): #{job_id}"
|
195
|
-
JobChecker.perform_async(job_id, script_basename, log_file, user, project_number, next_dataset_id)
|
195
|
+
JobChecker.perform_async(job_id, script_basename, log_file, user, project_number, next_dataset_id, rails_host)
|
196
196
|
end
|
197
197
|
end
|
198
198
|
end
|
@@ -297,7 +297,7 @@ module WorkflowManager
|
|
297
297
|
Thread.current.kill
|
298
298
|
end
|
299
299
|
end
|
300
|
-
def start_monitoring3(script_path, script_content, user='sushi_lover', project_number=0, sge_options='', log_dir='', next_dataset_id='')
|
300
|
+
def start_monitoring3(script_path, script_content, user='sushi_lover', project_number=0, sge_options='', log_dir='', next_dataset_id='', rails_host=nil)
|
301
301
|
script_basename = File.basename(script_path)
|
302
302
|
job_id, log_file, command = @cluster.submit_job(script_path, script_content, sge_options)
|
303
303
|
#p command
|
@@ -305,7 +305,7 @@ module WorkflowManager
|
|
305
305
|
#p job_id
|
306
306
|
puts "JobID (in WorkflowManager): #{job_id}"
|
307
307
|
sleep 1
|
308
|
-
JobChecker.perform_async(job_id, script_basename, log_file, user, project_number, next_dataset_id)
|
308
|
+
JobChecker.perform_async(job_id, script_basename, log_file, user, project_number, next_dataset_id, rails_host)
|
309
309
|
job_id
|
310
310
|
end
|
311
311
|
def start_monitoring2(script_path, script_content, user='sushi_lover', project_number=0, sge_options='', log_dir='')
|
data/start_workflow_manager.sh
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workflow_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Functional Genomics Center Zurich
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-10-
|
11
|
+
date: 2021-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|