inst-jobs-autoscaling 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jobs_autoscaling/monitor.rb +20 -2
- data/lib/jobs_autoscaling/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7d2f6a38d87a869c628fcf44743f6f6921cf4eeab7a2f4efb531d884efe8b97
|
4
|
+
data.tar.gz: a3fbda486e7586ec36d539e27bf6be30239c8ac96106553e20ca15cbdf88daff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f60ef4e60f881b61d1325735884e248dce4a252e9f2d985b451c0bb3b934af0627a4665f78e72de448788cbbaadd9d9cd2d5edd0d4f33fa24c845fc684094f7
|
7
|
+
data.tar.gz: 4a15b8ee2fc114b5f7541f8cde0d0211f471a9634eafb4f37449f47709cc457f3bf4ac7061714796d1c70c1c9bb529734940f216c705ce8e8cb467fcf1305e17
|
@@ -11,17 +11,35 @@ module JobsAutoscaling
|
|
11
11
|
|
12
12
|
def activate!
|
13
13
|
Delayed::Worker.lifecycle.after(:work_queue_pop, &method(:work_queue_pop))
|
14
|
-
|
14
|
+
load_preexisting_jobs
|
15
|
+
change_state(preexisting_jobs_running? ? BUSY : IDLE)
|
15
16
|
end
|
16
17
|
|
17
18
|
protected
|
18
19
|
|
20
|
+
def load_preexisting_jobs
|
21
|
+
@process_mtime_map = {}
|
22
|
+
Delayed::Job.processes_locked_locally.each do |pid|
|
23
|
+
mtime = Delayed::Worker::ProcessHelper.mtime(pid)
|
24
|
+
@process_mtime_map[pid] = mtime if mtime
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def preexisting_jobs_running?
|
29
|
+
@process_mtime_map.each do |pid, mtime|
|
30
|
+
unless Delayed::Worker::ProcessHelper.process_is_still_running?(pid, mtime)
|
31
|
+
@process_mtime_map.delete(pid)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
@process_mtime_map.any?
|
35
|
+
end
|
36
|
+
|
19
37
|
def work_queue_pop(work_queue, _worker_config)
|
20
38
|
unless work_queue.respond_to?(:all_workers_idle?)
|
21
39
|
return
|
22
40
|
end
|
23
41
|
|
24
|
-
new_state = work_queue.all_workers_idle? ? IDLE : BUSY
|
42
|
+
new_state = work_queue.all_workers_idle? && !preexisting_jobs_running? ? IDLE : BUSY
|
25
43
|
if new_state != @worker_state
|
26
44
|
change_state(new_state)
|
27
45
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inst-jobs-autoscaling
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Palmer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: inst-jobs
|
@@ -138,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
138
|
version: '0'
|
139
139
|
requirements: []
|
140
140
|
rubyforge_project:
|
141
|
-
rubygems_version: 2.7.
|
141
|
+
rubygems_version: 2.7.3
|
142
142
|
signing_key:
|
143
143
|
specification_version: 4
|
144
144
|
summary: AWS ASG autoscaling for inst-jobs
|