workless_revived 1.2.4.2 → 1.2.5

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.
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)