heroscale 0.0.2 → 0.1.0

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- heroscale (0.0.2)
4
+ heroscale (0.1.0)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
data/heroscale.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "heroscale"
3
- s.version = "0.0.2"
3
+ s.version = "0.1.0"
4
4
 
5
5
  s.authors = ["Jacques Crocker"]
6
6
  s.summary = "Autoscale your heroku app"
@@ -11,10 +11,11 @@ module Heroscale
11
11
  queue_wait_time = env['HTTP_X_HEROKU_QUEUE_WAIT_TIME']
12
12
  queue_depth = env['HTTP_X_HEROKU_QUEUE_DEPTH']
13
13
  dynos_in_use = env['HTTP_X_HEROKU_DYNOS_IN_USE']
14
+ job_queue = count_jobs || 0
14
15
 
15
16
  if queue_wait_time and queue_depth and dynos_in_use
16
17
  # format the response on heroku
17
- res = %|{"heroku": true, "queue_wait_time": #{queue_wait_time.to_i}, "queue_depth": #{queue_depth.to_i}, "dynos_in_use": #{dynos_in_use.to_i}}|
18
+ res = %|{"heroku": true, "queue_wait_time": #{queue_wait_time.to_i}, "queue_depth": #{queue_depth.to_i}, "dynos_in_use": #{dynos_in_use.to_i}, "job_queue": #{job_queue}}|
18
19
  else
19
20
  res = %|{"heroku": false}|
20
21
  end
@@ -25,5 +26,21 @@ module Heroscale
25
26
  end
26
27
  end
27
28
 
29
+ protected
30
+
31
+ # count the pending jobs for Delayed::Job or Resque
32
+ def count_jobs
33
+ if defined?(Delayed::Job)
34
+ Delayed::Job.count
35
+ elsif defined?(Resque) and ENV["QUEUE"]
36
+ Resque.size(ENV["QUEUE"])
37
+ else
38
+ 0
39
+ end
40
+ rescue => e
41
+ puts "Error counting jobs: #{e.to_s}"
42
+ return 0
43
+ end
44
+
28
45
  end
29
46
  end
@@ -71,4 +71,11 @@ describe Heroscale::Middleware do
71
71
  end
72
72
  end
73
73
 
74
+ context "when DelayedJob is installed" do
75
+ it "should return the queue count"
76
+ end
77
+
78
+ context "when Resque is installed" do
79
+ it "should return the queue count"
80
+ end
74
81
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
+ - 1
7
8
  - 0
8
- - 2
9
- version: 0.0.2
9
+ version: 0.1.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Jacques Crocker
@@ -94,7 +94,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
- hash: -2259297854901398522
97
+ hash: 1580003485100128021
98
98
  segments:
99
99
  - 0
100
100
  version: "0"
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  requirements:
104
104
  - - ">="
105
105
  - !ruby/object:Gem::Version
106
- hash: -2259297854901398522
106
+ hash: 1580003485100128021
107
107
  segments:
108
108
  - 0
109
109
  version: "0"