heroku_dj_auto_scale 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module HerokuDjAutoScale
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -5,18 +5,40 @@ module HerokuDjAutoScale
5
5
  module Scaler
6
6
  class << self
7
7
 
8
- def get_heroku
9
- @heroku = Heroku::Client.new(ENV['HEROKU_USER'], ENV['HEROKU_PASS']) if ENV['USE_HEROKU_SCALING'] == 'true'
8
+ def heroku
9
+ @heroku ||= Heroku::Client.new(ENV['HEROKU_USER'], ENV['HEROKU_PASS']) if ENV['USE_HEROKU_SCALING'] == 'true'
10
10
  end
11
-
12
- def workers
13
- get_heroku
14
- ENV['USE_HEROKU_SCALING'] == 'true' ? @heroku.info(ENV['HEROKU_APP'])[:workers].to_i : 1
11
+
12
+ def stack
13
+ if ENV['USE_HEROKU_SCALING'] == 'true'
14
+ heroku.list_stacks(ENV['HEROKU_APP']).inject("") do |current,stack|
15
+ stack["current"] ? stack["name"] : current
16
+ end
17
+ else
18
+ "current"
19
+ end
15
20
  end
16
-
21
+
22
+ def get_workers
23
+ if ENV['USE_HEROKU_SCALING'] == 'true'
24
+ if stack == "cedar"
25
+ heroku.ps(ENV['HEROKU_APP']).count { |p| p["process"] =~ /worker\.\d?/ }
26
+ else
27
+ heroku.info(ENV['HEROKU_APP'])[:workers].to_i
28
+ end
29
+ else
30
+ 1
31
+ end
32
+ end
33
+
17
34
  def workers=(qty)
18
- get_heroku
19
- @heroku.set_workers(ENV['HEROKU_APP'], qty) if ENV['USE_HEROKU_SCALING'] == 'true'
35
+ if ENV['USE_HEROKU_SCALING'] == 'true'
36
+ if stack == "cedar"
37
+ heroku.ps_scale(ENV['HEROKU_APP'], :type => 'worker', :qty => qty)
38
+ else
39
+ heroku.set_workers(ENV['HEROKU_APP'], qty)
40
+ end
41
+ end
20
42
  end
21
43
 
22
44
  def job_count
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heroku_dj_auto_scale
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 7
10
- version: 0.0.7
4
+ prerelease:
5
+ version: 0.0.8
11
6
  platform: ruby
12
7
  authors:
13
8
  - Joel Basson
@@ -15,7 +10,7 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-03-23 00:00:00 +02:00
13
+ date: 2011-12-07 00:00:00 +02:00
19
14
  default_executable:
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
@@ -26,9 +21,6 @@ dependencies:
26
21
  requirements:
27
22
  - - ">="
28
23
  - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
24
  version: "0"
33
25
  type: :runtime
34
26
  version_requirements: *id001
@@ -40,9 +32,6 @@ dependencies:
40
32
  requirements:
41
33
  - - ">="
42
34
  - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
35
  version: "0"
47
36
  type: :runtime
48
37
  version_requirements: *id002
@@ -54,13 +43,6 @@ dependencies:
54
43
  requirements:
55
44
  - - ">="
56
45
  - !ruby/object:Gem::Version
57
- hash: 15424057
58
- segments:
59
- - 1
60
- - 0
61
- - 0
62
- - rc
63
- - 6
64
46
  version: 1.0.0.rc.6
65
47
  type: :development
66
48
  version_requirements: *id003
@@ -96,25 +78,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
78
  requirements:
97
79
  - - ">="
98
80
  - !ruby/object:Gem::Version
99
- hash: 3
100
- segments:
101
- - 0
102
81
  version: "0"
103
82
  required_rubygems_version: !ruby/object:Gem::Requirement
104
83
  none: false
105
84
  requirements:
106
85
  - - ">="
107
86
  - !ruby/object:Gem::Version
108
- hash: 23
109
- segments:
110
- - 1
111
- - 3
112
- - 6
113
87
  version: 1.3.6
114
88
  requirements: []
115
89
 
116
90
  rubyforge_project: heroku_dj_auto_scale
117
- rubygems_version: 1.3.7
91
+ rubygems_version: 1.6.2
118
92
  signing_key:
119
93
  specification_version: 3
120
94
  summary: Allows auto-scaling of delayed job workers in Heroku