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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e2da7b0c22f10f971c6dc3eb21c89b8321a8f52c2bda0bd42917c20a625ce995
4
- data.tar.gz: 2ae4ffec963b02a83f37a3034af4af3835e9b27e018d05b7294979e716b3ec47
3
+ metadata.gz: aff589c219150c4a2b7e8676d8540343143a12099ce4bfed847663e37f946a99
4
+ data.tar.gz: 64461e67991613603227c3894aa2b728db4952739071d140c007caefd8564601
5
5
  SHA512:
6
- metadata.gz: 120bd8ae2bbae899b096d630b7cc050f828b0004c7cf9432cf7d4e16113d4c71d542c5ab8d32fbdb953199e5ae491aaadac0950759b371810b7c84170fc01f1f
7
- data.tar.gz: 2c82352987cfcbfced6fe32bbe6a38544788b4d686277bd785a67a719ad22fef052102623388aec7bece99c059b7eb9c921bd07de695097cde7a87177f2ad26e
6
+ metadata.gz: 4e79f54d8335b4df34e466055d76cb8f64fa5c53787bf83047a7e259e5d564b0514e39d2b08ba56830dc73e9235164904806a34210e76e6e1018516e1f3bd243
7
+ data.tar.gz: 9e3f4b1ce2adddc6b4b13e77e7bedbef74c9b635253ba77f9dbd0d731a5a6896a515404b481aa0c7f23b1a739f55142f5825fa7b7ffa8ecb8f7c7a3ba8754166
@@ -6,4 +6,4 @@ rdbcompression yes
6
6
  dir ./dbs
7
7
  dbfilename redis.rdb
8
8
  maxmemory 10gb
9
- port 6380
9
+ port 6379
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='')
@@ -1,3 +1,3 @@
1
1
  module WorkflowManager
2
- VERSION = "0.7.6"
2
+ VERSION = "0.7.7"
3
3
  end
@@ -8,4 +8,4 @@ which g-sub
8
8
  which g-req
9
9
  mkdir -p logs
10
10
  mkdir -p dbs
11
- bundle exec workflow_manager -d druby://fgcz-h-031:40001
11
+ bundle exec workflow_manager -d druby://fgcz-h-032:40002
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.6
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-01 00:00:00.000000000 Z
11
+ date: 2021-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler