workflow_manager 0.7.6 → 0.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|