workless_revived 1.2.4.2 → 1.2.5

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
  SHA1:
3
- metadata.gz: 5b5a1a47d9231df47d7e91665f9df9ed5ed0da09
4
- data.tar.gz: adbf672dd8df88f312bd2dffab188e7d142a2369
3
+ metadata.gz: 98e47054154aee4abcc5275e895a0ce1695370b4
4
+ data.tar.gz: 3d1aacf639ccafff4f39b05932cdd2a57fd3121e
5
5
  SHA512:
6
- metadata.gz: 6566f63ba82935ed5d9ffb20dea3e76f8da9705f031fd8c4f219d91e0705dd6b0fbcc5970cdaaba54af22ce36e7ca6d145bb4122928e9c4f06ccc92835b4cf89
7
- data.tar.gz: 648a225d01433fe5cdef45639a68c93930621dbb909458903136a70a626329c52d88accca930ab7243cb0641767d95baed650cfbe7bc142134b273b74b6d9ce8
6
+ metadata.gz: 23bf9f4b9e0d9cdebf6f731d87f19d574ebdb99f59dc5130875b7a6719a853958dd5336ad3fe09ad480e44717da504fb38b224d13025917ac3b87d4dd72a67b4
7
+ data.tar.gz: c27916acaa6088249f0d264be8f3ea78c38100c90eedcccfd61191be47eaead40147d32dee2bf2b2c593bce91bc0464f87aef894aefde780616d63b57665fb3b
data/README.md CHANGED
@@ -13,6 +13,7 @@ By adding the gem to your project and configuring our Heroku app with some confi
13
13
 
14
14
  ## Updates
15
15
 
16
+ * Version 1.2.5 Added middleware to check on delayed jobs, fixed Rails 5 support
16
17
  * Version 1.2.4 drops support for older versions!
17
18
  * Version 1.2.3 replaces multiple commit callback with two callbacks for compatibility by @lostboy
18
19
  * Version 1.2.2 includes after_commit fix by @collectiveip
@@ -14,7 +14,7 @@ class WorklessChecker
14
14
  headers['Content-Length'] = response_body.bytesize.to_s
15
15
  end
16
16
 
17
- return [status, headers, response_body ? [response_body] : response]
17
+ [status, headers, response_body ? [response_body] : response]
18
18
  end
19
19
 
20
20
  # fix issue if response's body is a Proc
@@ -28,10 +28,10 @@ class WorklessChecker
28
28
 
29
29
  # if send file?
30
30
  def file?(headers)
31
- headers["Content-Transfer-Encoding"] == "binary"
31
+ headers['Content-Transfer-Encoding'] == 'binary'
32
32
  end
33
33
 
34
34
  def html_request?(headers, response)
35
- headers['Content-Type'] && headers['Content-Type'].include?('text/html') && response.body.include?("<html")
35
+ headers['Content-Type'] && headers['Content-Type'].include?('text/html') && response.body.include?('<html')
36
36
  end
37
37
  end
@@ -5,7 +5,7 @@ module Delayed
5
5
  class Railtie < Rails::Railtie
6
6
  initializer :after_initialize do |config|
7
7
  require 'workless/initialize'
8
- config.middleware.use "WorklessChecker"
8
+ config.middleware.use 'WorklessChecker'
9
9
  end
10
10
  end
11
11
  end
@@ -1,20 +1,19 @@
1
1
  module Delayed
2
2
  module Workless
3
3
  module Scaler
4
-
5
- autoload :Heroku, "workless/scalers/heroku"
6
- autoload :HerokuCedar, "workless/scalers/heroku_cedar"
7
- autoload :Local, "workless/scalers/local"
8
- autoload :Null, "workless/scalers/null"
4
+ autoload :Heroku, 'workless/scalers/heroku'
5
+ autoload :HerokuCedar, 'workless/scalers/heroku_cedar'
6
+ autoload :Local, 'workless/scalers/local'
7
+ autoload :Null, 'workless/scalers/null'
9
8
 
10
9
  def self.included(base)
11
10
  base.send :extend, ClassMethods
12
11
  if base.to_s =~ /ActiveRecord/
13
12
  base.class_eval do
14
- after_commit "self.class.scaler.down", :on => :update, :if => Proc.new {|r| !r.failed_at.nil? }
15
- after_commit "self.class.scaler.down", :on => :destroy, :if => Proc.new {|r| r.destroyed? or !r.failed_at.nil? }
16
- after_commit "self.class.scaler.up", :on => :create
17
- end
13
+ after_commit 'self.class.scaler.down'.to_sym, on: :update, if: proc { |r| !r.failed_at.nil? }
14
+ after_commit 'self.class.scaler.down'.to_sym, on: :destroy, if: proc { |r| r.destroyed? || !r.failed_at.nil? }
15
+ after_commit 'self.class.scaler.up'.to_sym, on: :create
16
+ end
18
17
  elsif base.to_s =~ /Sequel/
19
18
  base.send(:define_method, 'after_destroy') do
20
19
  super
@@ -30,19 +29,19 @@ module Delayed
30
29
  end
31
30
  else
32
31
  base.class_eval do
33
- after_destroy "self.class.scaler.down"
34
- after_create "self.class.scaler.up"
35
- after_update "self.class.scaler.down", :unless => Proc.new {|r| r.failed_at.nil? }
32
+ after_destroy 'self.class.scaler.down'
33
+ after_create 'self.class.scaler.up'
34
+ after_update 'self.class.scaler.down', unless: proc { |r| r.failed_at.nil? }
36
35
  end
37
36
  end
38
37
  end
39
38
 
40
39
  module ClassMethods
41
40
  def scaler
42
- @scaler ||= if ENV.include?("HEROKU_API_KEY")
43
- Scaler::HerokuCedar
44
- else
45
- Scaler::Local
41
+ @scaler ||= if ENV.include?('HEROKU_API_KEY')
42
+ Scaler::HerokuCedar
43
+ else
44
+ Scaler::Local
46
45
  end
47
46
  end
48
47
 
@@ -50,8 +49,6 @@ module Delayed
50
49
  @scaler = "Delayed::Workless::Scaler::#{scaler.to_s.camelize}".constantize
51
50
  end
52
51
  end
53
-
54
52
  end
55
-
56
53
  end
57
54
  end
@@ -3,25 +3,21 @@ require 'delayed_job'
3
3
  module Delayed
4
4
  module Workless
5
5
  module Scaler
6
-
7
6
  class Base
8
7
  def self.jobs
9
- if Rails.version >= "3.0.0"
10
- Delayed::Job.where(:failed_at => nil)
8
+ if Rails.version >= '3.0.0'
9
+ Delayed::Job.where(failed_at: nil)
11
10
  else
12
- Delayed::Job.all(:conditions => { :failed_at => nil })
11
+ Delayed::Job.all(conditions: { failed_at: nil })
13
12
  end
14
13
  end
15
14
  end
16
15
 
17
16
  module HerokuClient
18
-
19
17
  def client
20
- @client ||= ::Heroku::API.new(:api_key => ENV['HEROKU_API_KEY'])
18
+ @client ||= ::Heroku::API.new(api_key: ENV['HEROKU_API_KEY'])
21
19
  end
22
-
23
20
  end
24
-
25
21
  end
26
22
  end
27
23
  end
@@ -3,25 +3,21 @@ require 'heroku-api'
3
3
  module Delayed
4
4
  module Workless
5
5
  module Scaler
6
-
7
6
  class Heroku < Base
8
-
9
7
  extend Delayed::Workless::Scaler::HerokuClient
10
8
 
11
9
  def self.up
12
- client.put_workers(ENV['APP_NAME'], 1) if self.workers == 0
10
+ client.put_workers(ENV['APP_NAME'], 1) if workers == 0
13
11
  end
14
12
 
15
13
  def self.down
16
- client.put_workers(ENV['APP_NAME'], 0) unless self.jobs.count > 0 or self.workers == 0
14
+ client.put_workers(ENV['APP_NAME'], 0) unless jobs.count > 0 || workers == 0
17
15
  end
18
16
 
19
17
  def self.workers
20
- client.get_ps(ENV['APP_NAME']).body.count { |p| p["process"] =~ /worker\.\d?/ }
18
+ client.get_ps(ENV['APP_NAME']).body.count { |p| p['process'] =~ /worker\.\d?/ }
21
19
  end
22
-
23
20
  end
24
-
25
21
  end
26
22
  end
27
23
  end
@@ -7,15 +7,15 @@ module Delayed
7
7
  extend Delayed::Workless::Scaler::HerokuClient
8
8
 
9
9
  def self.up
10
- client.post_ps_scale(ENV['APP_NAME'], 'worker', self.workers_needed) if self.workers_needed > self.min_workers and self.workers < self.workers_needed
10
+ client.post_ps_scale(ENV['APP_NAME'], 'worker', workers_needed) if workers_needed > min_workers && workers < workers_needed
11
11
  end
12
12
 
13
13
  def self.down
14
- client.post_ps_scale(ENV['APP_NAME'], 'worker', self.workers_needed) unless self.workers == self.workers_needed
14
+ client.post_ps_scale(ENV['APP_NAME'], 'worker', workers_needed) unless workers == workers_needed
15
15
  end
16
16
 
17
17
  def self.workers
18
- client.get_ps(ENV['APP_NAME']).body.count { |p| p["process"] =~ /worker\.\d?/ }
18
+ client.get_ps(ENV['APP_NAME']).body.count { |p| p['process'] =~ /worker\.\d?/ }
19
19
  end
20
20
 
21
21
  # Returns the number of workers needed based on the current number of pending jobs and the settings defined by:
@@ -25,7 +25,7 @@ module Delayed
25
25
  # ENV['WORKLESS_MIN_WORKERS']
26
26
  #
27
27
  def self.workers_needed
28
- [[(self.jobs.count.to_f / self.workers_ratio).ceil, self.max_workers].min, self.min_workers].max
28
+ [[(jobs.count.to_f / workers_ratio).ceil, max_workers].min, min_workers].max
29
29
  end
30
30
 
31
31
  def self.workers_ratio
@@ -46,4 +46,4 @@ module Delayed
46
46
  end
47
47
  end
48
48
  end
49
- end
49
+ end
@@ -4,7 +4,6 @@ module Delayed
4
4
  module Workless
5
5
  module Scaler
6
6
  class Local < Base
7
-
8
7
  def self.executable_prefix
9
8
  if defined? Delayed::Compatibility.executable_prefix
10
9
  Delayed::Compatibility.executable_prefix
@@ -14,22 +13,22 @@ module Delayed
14
13
  end
15
14
 
16
15
  def self.up
17
- if self.workers == 0
18
- Rush::Box.new[Rails.root].bash("#{executable_prefix}/delayed_job start -i workless", :background => true)
16
+ if workers == 0
17
+ Rush::Box.new[Rails.root].bash("#{executable_prefix}/delayed_job start -i workless", background: true)
19
18
  sleep 1
20
19
  end
21
20
  true
22
21
  end
23
22
 
24
23
  def self.down
25
- if self.workers > 0 and jobs.count == 0
26
- Rush::Box.new[Rails.root].bash("#{executable_prefix}/delayed_job stop -i workless", :background => true)
24
+ if workers > 0 && jobs.count == 0
25
+ Rush::Box.new[Rails.root].bash("#{executable_prefix}/delayed_job stop -i workless", background: true)
27
26
  end
28
27
  true
29
28
  end
30
29
 
31
30
  def self.workers
32
- Rush::Box.new.processes.filter(:cmdline => /delayed_job start -i workless|delayed_job.workless/).size
31
+ Rush::Box.new.processes.filter(cmdline: /delayed_job start -i workless|delayed_job.workless/).size
33
32
  end
34
33
  end
35
34
  end
@@ -1,17 +1,13 @@
1
1
  module Delayed
2
2
  module Workless
3
3
  module Scaler
4
-
5
4
  class Null < Base
6
-
7
5
  def self.up
8
6
  end
9
7
 
10
8
  def self.down
11
9
  end
12
-
13
10
  end
14
-
15
11
  end
16
12
  end
17
13
  end
@@ -0,0 +1,5 @@
1
+ require 'heroku-api'
2
+ require File.dirname(__FILE__) + '/workless/scalers/base'
3
+ require File.dirname(__FILE__) + '/workless/scaler'
4
+ require File.dirname(__FILE__) + '/workless/middleware/workless_checker' if defined?(Rails::Railtie)
5
+ require File.dirname(__FILE__) + '/workless/railtie' if defined?(Rails::Railtie)
data/rails/init.rb CHANGED
@@ -1 +1 @@
1
- require File.dirname(__FILE__) + "/../lib/workless/initialize"
1
+ require File.dirname(__FILE__) + '/../lib/workless/initialize'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workless_revived
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4.2
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - davidakachaos
@@ -14,16 +14,16 @@ dependencies:
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "<"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.0.0.1
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "<"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 5.0.0.1
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: heroku-api
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -88,7 +88,6 @@ extra_rdoc_files: []
88
88
  files:
89
89
  - LICENSE
90
90
  - README.md
91
- - lib/workless.rb
92
91
  - lib/workless/initialize.rb
93
92
  - lib/workless/middleware/workless_checker.rb
94
93
  - lib/workless/railtie.rb
@@ -98,6 +97,7 @@ files:
98
97
  - lib/workless/scalers/heroku_cedar.rb
99
98
  - lib/workless/scalers/local.rb
100
99
  - lib/workless/scalers/null.rb
100
+ - lib/workless_revived.rb
101
101
  - rails/init.rb
102
102
  homepage: http://github.com/davidakachaos/workless_revived
103
103
  licenses: []
data/lib/workless.rb DELETED
@@ -1,5 +0,0 @@
1
- require "heroku-api"
2
- require File.dirname(__FILE__) + "/workless/scalers/base"
3
- require File.dirname(__FILE__) + "/workless/scaler"
4
- require File.dirname(__FILE__) + "/workless/middleware/workless_checker" if defined?(Rails::Railtie)
5
- require File.dirname(__FILE__) + "/workless/railtie" if defined?(Rails::Railtie)