workless 1.1.3 → 1.2.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.
- checksums.yaml +7 -0
- data/README.md +1 -0
- data/lib/workless/initialize.rb +1 -0
- data/lib/workless/scaler.rb +20 -7
- metadata +16 -28
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5818c8af31664494d49a5ae37ce3248f068f89a6
|
4
|
+
data.tar.gz: ff827678c442c0151f40f0fa1946b1197a2f3c2e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8dea06dfeccbc2097741aa16f048b5d61f8329741f896d27ccaf294812b3b59800122fc92d732b578e2a50b5aec228a36563e0f51531de904a28e51dc031b1fb
|
7
|
+
data.tar.gz: e94dbc3534ea6bee4c4fe0b9c3237122a16c079f2ad43985a05b991ee6eae112dd44e79bf89891215ac3e1ae7cc4fa2ffc0e59ef0257fd88cee076145b607bab
|
data/README.md
CHANGED
@@ -9,6 +9,7 @@ By adding the gem to your project and configuring our Heroku app with some confi
|
|
9
9
|
|
10
10
|
## Updates
|
11
11
|
|
12
|
+
* Version 1.2.0 includes new support for Sequel by @davidakachaos
|
12
13
|
* Version 1.1.3 includes changes by @radanskoric to reduce number of heroku api calls
|
13
14
|
* Version 1.1.2 includes a change by @davidakachaos to scale workers using after_commit
|
14
15
|
* Version 1.1.1 includes a fix from @filiptepper and @fixr to correctly scale workers
|
data/lib/workless/initialize.rb
CHANGED
@@ -2,3 +2,4 @@ Delayed::Worker.max_attempts = 3
|
|
2
2
|
Delayed::Backend::ActiveRecord::Job.send(:include, Delayed::Workless::Scaler) if defined?(Delayed::Backend::ActiveRecord::Job)
|
3
3
|
Delayed::Backend::Mongoid::Job.send(:include, Delayed::Workless::Scaler) if defined?(Delayed::Backend::Mongoid::Job)
|
4
4
|
Delayed::Backend::MongoMapper::Job.send(:include, Delayed::Workless::Scaler) if defined?(Delayed::Backend::MongoMapper::Job)
|
5
|
+
Delayed::Backend::Sequel::Job.send(:include, Delayed::Workless::Scaler) if defined?(Delayed::Backend::Sequel::Job)
|
data/lib/workless/scaler.rb
CHANGED
@@ -9,18 +9,31 @@ module Delayed
|
|
9
9
|
|
10
10
|
def self.included(base)
|
11
11
|
base.send :extend, ClassMethods
|
12
|
-
|
13
|
-
base.class_eval do
|
14
|
-
after_destroy "self.class.scaler.down"
|
15
|
-
after_create "self.class.scaler.up"
|
16
|
-
after_update "self.class.scaler.down", :unless => Proc.new {|r| r.failed_at.nil? }
|
17
|
-
end
|
18
|
-
else
|
12
|
+
if base.to_s =~ /ActiveRecord/
|
19
13
|
base.class_eval do
|
20
14
|
after_commit "self.class.scaler.down", :on => :destroy
|
21
15
|
after_commit "self.class.scaler.up", :on => :create
|
22
16
|
after_commit "self.class.scaler.down", :on => :update, :unless => Proc.new {|r| r.failed_at.nil? }
|
23
17
|
end
|
18
|
+
elsif base.to_s =~ /Sequel/
|
19
|
+
base.send(:define_method, 'after_destroy') do
|
20
|
+
super
|
21
|
+
self.class.scaler.down
|
22
|
+
end
|
23
|
+
base.send(:define_method, 'after_create') do
|
24
|
+
super
|
25
|
+
self.class.scaler.up
|
26
|
+
end
|
27
|
+
base.send(:define_method, 'after_update') do
|
28
|
+
super
|
29
|
+
self.class.scaler.down
|
30
|
+
end
|
31
|
+
else
|
32
|
+
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? }
|
36
|
+
end
|
24
37
|
end
|
25
38
|
|
26
39
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workless
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- lostboy
|
@@ -14,81 +13,71 @@ dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: heroku-api
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rush
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: delayed_job
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: 2.0.7
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: 2.0.7
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rspec
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
description: Extension to Delayed Job to enable workers to scale up when needed
|
@@ -111,26 +100,25 @@ files:
|
|
111
100
|
- README.md
|
112
101
|
homepage: http://github.com/lostboy/workless
|
113
102
|
licenses: []
|
103
|
+
metadata: {}
|
114
104
|
post_install_message:
|
115
105
|
rdoc_options: []
|
116
106
|
require_paths:
|
117
107
|
- lib
|
118
108
|
required_ruby_version: !ruby/object:Gem::Requirement
|
119
|
-
none: false
|
120
109
|
requirements:
|
121
|
-
- -
|
110
|
+
- - '>='
|
122
111
|
- !ruby/object:Gem::Version
|
123
112
|
version: '0'
|
124
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
|
-
none: false
|
126
114
|
requirements:
|
127
|
-
- -
|
115
|
+
- - '>='
|
128
116
|
- !ruby/object:Gem::Version
|
129
117
|
version: 1.3.6
|
130
118
|
requirements: []
|
131
119
|
rubyforge_project:
|
132
|
-
rubygems_version:
|
120
|
+
rubygems_version: 2.0.5
|
133
121
|
signing_key:
|
134
|
-
specification_version:
|
122
|
+
specification_version: 4
|
135
123
|
summary: Use delayed job workers only when theyre needed on Heroku
|
136
124
|
test_files: []
|