rails_autoscale_agent 0.9.0.beta.2 → 0.9.0.beta.4

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: 998351ab2e804fc443d63825d3a71255d6539f225ef791a4819391d735d29e51
4
- data.tar.gz: 83df02c312d3fd2a1504c782b699c6ac5e26444145ff885ecff808ebf2a9cfc3
3
+ metadata.gz: 70253908c027308ec4d19c9b41eeed033759e6669eace3301925a65a64748447
4
+ data.tar.gz: 199e75a27f4708920b47964cbc75e2b705ddce88508c35fd614512bb9bfcfd5e
5
5
  SHA512:
6
- metadata.gz: 6a34893873a4fc6b926e93d89002b3527f8adce615f97d1694753995df89666cfea3c37f55d435011edbe3e6c39928f835d7594c79cd310feb2267bfc1bbb1fa
7
- data.tar.gz: 00b6943d706c93e1d93dc01259d6982618083b0d7359b212eb0187c26edac6f979a11c0c7a387671d60f80a6eb1ef13e74f5182b9f92b814dc01cd9d0f8c5b6b
6
+ metadata.gz: af5043f8402b40c15b5efe0be205e0e4c6107b8d05ea7126ccfa445c28679567c7e0f15e2a01eb2b7e107c95d3802543c48f428c31f70be823953173cd903ae1
7
+ data.tar.gz: 1fcfa15d0c76a8f1abf38653890d6b2157fd2e4edfc2ac072eb198897ab09029ea3f1c83ee11620e13a1a07a379695d7913c5bed89ce51e1907451367e61b1df
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAutoscaleAgent
4
- VERSION = "0.9.0.beta.2"
4
+ VERSION = "0.9.0.beta.4"
5
5
  end
@@ -8,6 +8,8 @@ module RailsAutoscaleAgent
8
8
  include RailsAutoscaleAgent::Logger
9
9
  include Singleton
10
10
 
11
+ UNNAMED_QUEUE = '[unnamed]'
12
+
11
13
  class << self
12
14
  attr_accessor :queues
13
15
  end
@@ -26,18 +28,20 @@ module RailsAutoscaleAgent
26
28
 
27
29
  def collect!(store)
28
30
  log_msg = String.new
29
- t = Time.now
31
+ t = Time.now.utc
32
+ db_time = t.strftime('%Y-%m-%d %H:%M:%S')
30
33
 
31
34
  # Ignore failed jobs (they skew latency measurement due to the original run_at)
32
- sql = 'SELECT queue, min(run_at) FROM delayed_jobs WHERE attempts = 0 GROUP BY queue'
35
+ sql = "SELECT queue, min(run_at) FROM delayed_jobs WHERE run_at < '#{db_time}' AND locked_at IS NULL AND failed_at IS NULL GROUP BY queue"
33
36
  run_at_by_queue = Hash[ActiveRecord::Base.connection.select_rows(sql)]
34
37
  queues = self.class.queues | run_at_by_queue.keys
35
38
 
36
39
  queues.each do |queue|
37
- next if queue.nil? || queue.empty?
38
40
  run_at = run_at_by_queue[queue]
39
41
  run_at = Time.parse(run_at) if run_at.is_a?(String)
40
42
  latency_ms = run_at ? ((t - run_at)*1000).ceil : 0
43
+
44
+ queue = UNNAMED_QUEUE if queue.nil? || queue.empty?
41
45
  store.push latency_ms, t, queue
42
46
  log_msg << "dj.#{queue}=#{latency_ms} "
43
47
  end
@@ -9,6 +9,7 @@ module RailsAutoscaleAgent
9
9
  include RailsAutoscaleAgent::Logger
10
10
  include Singleton
11
11
 
12
+ UNNAMED_QUEUE = '[unnamed]'
12
13
  DEFAULT_QUEUES = ['default']
13
14
 
14
15
  class << self
@@ -33,10 +34,11 @@ module RailsAutoscaleAgent
33
34
  self.class.queues |= run_at_by_queue.keys
34
35
 
35
36
  self.class.queues.each do |queue|
36
- next if queue.nil? || queue.empty?
37
37
  run_at = run_at_by_queue[queue]
38
38
  run_at = Time.parse(run_at) if run_at.is_a?(String)
39
39
  latency_ms = run_at ? ((t - run_at)*1000).ceil : 0
40
+
41
+ queue = UNNAMED_QUEUE if queue.nil? || queue.empty?
40
42
  store.push latency_ms, t, queue
41
43
  log_msg << "que.#{queue}=#{latency_ms} "
42
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_autoscale_agent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0.beta.2
4
+ version: 0.9.0.beta.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam McCrea
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-10 00:00:00.000000000 Z
11
+ date: 2020-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -221,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
221
  - !ruby/object:Gem::Version
222
222
  version: 1.3.1
223
223
  requirements: []
224
- rubygems_version: 3.0.3
224
+ rubygems_version: 3.1.4
225
225
  signing_key:
226
226
  specification_version: 4
227
227
  summary: This gem works with the Rails Autoscale Heroku add-on to automatically scale